嗨,我想用C#动态连接字符串.我在XML文件中有本地化的字符串,这个字符串我想根据运行时的语言选择进行更新.
下面我指定了输入字符串和预期输出字符串格式.
EX:
*Input String:*
"The density of your %s gas at reference conditions of %s %s and %s %s is:"
*Expected Output String:*
"The density of your Helium gas at reference conditions of 20.01 g and 15.12 Kg is:"
Run Code Online (Sandbox Code Playgroud)
谢谢
我在使用PHP函数时发现了一些奇怪的行为in_array()
.我有这样一个数组:
$arr = [TRUE, "some string", "something else"];
Run Code Online (Sandbox Code Playgroud)
现在,如果我想检查是否"test"
在数组中它显然不是,但in_array()
仍然返回TRUE,为什么呢?
$result = in_array("test", $arr);
var_dump($result); //Output: bool(true)
Run Code Online (Sandbox Code Playgroud)
使用时会发生同样的事情array_search()
:
$result = array_search("test", $arr);
var_dump($result); //Output: int(0)
Run Code Online (Sandbox Code Playgroud)
我想也许数组中的值TRUE会自动导致函数为每个结果返回TRUE,而不检查数组的其余部分,但我找不到任何可能表明非常奇怪的功能的文档.
简介:我们遇到的问题是EF4查询编译时间超过12秒.缓存查询只会让我们到目前为止; 我们有什么办法可以减少编译时间吗?有什么我们可能做错了我们可以寻找吗?谢谢!
我们有一个EF4模型,它通过WCF服务公开.对于我们的每个实体类型,我们公开了一个方法来获取并返回整个实体以进行显示/编辑,包括许多引用的子对象.
对于一个特定的实体,我们必须.Include()31个表/子表来返回所有相关数据.不幸的是,这使得EF查询编译过于缓慢:编译和构建7,800行,300K查询需要12-15秒.这是Web UI的后端,需要比这更快.
我们可以做些什么来改善这个?我们可以CompiledQuery.Compile这个 - 在第一次使用之前没有做任何工作,所以有助于第二次和后续的执行,但我们的客户很紧张,第一次使用也不应该很慢.同样,如果托管Web服务的IIS应用程序池被回收,我们将失去缓存计划,尽管我们可以延长生命周期以最大限度地减少这种情况.此外,我无法提前预先编译此方法和/或序列化EF编译的查询缓存(缺少反射技巧).CompiledQuery对象只包含对缓存的GUID引用,因此它是我们真正关心的缓存.(写出来它发生在我身上,我可以在app_startup的后台开始执行所有查询来编译它们 - 这样安全吗?)
然而,即使我们确实解决了这个问题,我们也会根据我们正在搜索的参数动态地使用LINQ-to-Entities子句构建我们的搜索查询:我不认为SQL生成器做得足够好,我们可以移动所有这些逻辑进入SQL层,所以我认为我们不能预先编译我们的搜索查询.这不太严重,因为搜索数据结果使用较少的表,因此编译时间仅为3-4秒而不是12-15,但客户认为最终用户仍然无法接受.
所以我们真的需要以某种方式减少查询编译时间.有任何想法吗?
我不明白为什么在32个表中生成一个选择需要12-15秒,所以我很乐观有一些改进的余地!
谢谢你的任何建议!我们正在针对SQL Server 2008运行,如果重要的话,XP/7/server 2008 R2使用RTM VS2010.
为什么我的递归函数会出现分段错误.每当我将一个大于4的值作为参数调用它时,就会发生这种情况
#include <iostream>
#include <limits>
using namespace std;
int printSeries(int n){
if(n==1){
return 1;
}
else if( n==2){
return 2;
}
else if( n==3){
return 3;
}
else if( n==4){
return printSeries(1) + printSeries(2) + printSeries(3);
}
else{
return printSeries(n-3) + printSeries((n-2) + printSeries(n-1));
}
}
int main(){
//double infinity = numeric_limits<double>::max();
for(int i=1; i<=10; i++){
cout << printSeries(i) << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我不确定是否返回正确的结果:
return printSeries(n-3) + printSeries(n-2) + printSeries(n-1);
Run Code Online (Sandbox Code Playgroud) 我一直在尝试按照本教程将WCF示例部署到IIS.我无法让它发挥作用.这是一个托管站点,但我确实有IIS管理员访问服务器.但是,在本教程的第2步中,我无法"创建一个物理上位于此应用程序目录中的新IIS应用程序".我似乎无法找到菜单项,上下文菜单项或什么不创建新的应用程序.我一直在疯狂地点击所有地方,仍然无法弄清楚如何创建一个新的应用程序.我想这可能是根本问题,但我尝试了其他一些事情(如下所述)以防万一实际上不是问题.这是我在IIS管理器中看到的图片,以防我的话不公正:
没有添加应用程序在这里http://www.freeimagehosting.net/uploads/d6edbaaf3c.png
这是在http://test.com.cws1.my-hosting-panel.com/IISHostedCalcService/Service.svc上 "部署"的.错误说:
The type 'Microsoft.ServiceModel.Samples.CalculatorService',
provided as the Service attribute value in the ServiceHost directive,
or provided in the configuration element
system.serviceModel/serviceHostingEnvironment/serviceActivations
could not be found.
Run Code Online (Sandbox Code Playgroud)
我还尝试在dotnetpanel中创建一个指向IISHostedCalcService的虚拟目录(IISHostedCalc).当我导航到http://test.com.cws1.my-hosting-panel.com/IISHostedCalc/Service.svc时,会出现另一个错误:
This collection already contains an address with scheme http.
There can be at most one address per scheme in this collection.
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我点击查看应用程序,似乎虚拟目录是一个应用程序(见下图)...虽然,根据上面的错误消息,它不起作用.
这是一个应用程序?http://www.freeimagehosting.net/uploads/f3230be046.png
根据教程,没有涉及编译; 我刚刚将文件放在服务器上,如下面的文件夹IISHostedCalcService:
service.svc
Web.config
<dir: App_Code>
Service.cs
Run Code Online (Sandbox Code Playgroud)
service.svc包含:
<%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService"%>
Run Code Online (Sandbox Code Playgroud)
(我尝试使用c#属性的引号,因为这看起来有点奇怪没有引号,但它没有区别)
Web.config包含:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"> …
Run Code Online (Sandbox Code Playgroud) 在C#中它会是这样的:
table
.GroupBy(row => row.SomeColumn)
.Select(group => group
.OrderBy(row => row.AnotherColumn)
.First()
)
Run Code Online (Sandbox Code Playgroud)
Linq-To-Sql将其转换为以下T-SQL代码:
SELECT [t3].[AnotherColumn], [t3].[SomeColumn]
FROM (
SELECT [t0].[SomeColumn]
FROM [Table] AS [t0]
GROUP BY [t0].[SomeColumn]
) AS [t1]
OUTER APPLY (
SELECT TOP (1) [t2].[AnotherColumn], [t2].[SomeColumn]
FROM [Table] AS [t2]
WHERE (([t1].[SomeColumn] IS NULL) AND ([t2].[SomeColumn] IS NULL))
OR (([t1].[SomeColumn] IS NOT NULL) AND ([t2].[SomeColumn] IS NOT NULL)
AND ([t1].[SomeColumn] = [t2].[SomeColumn]))
ORDER BY [t2].[AnotherColumn]
) AS [t3]
ORDER BY [t3].[AnotherColumn]
Run Code Online (Sandbox Code Playgroud)
但它与MySQL不兼容.
我在SQL中有一个例子如何在Linq to Entity中使用相同的逻辑?
SELECT * FROM TABLE WHERE DATE BETWEEN STARTDATE AND ENDDATE
Run Code Online (Sandbox Code Playgroud) 假设这是一个小问题,但在php中是否有类似mysql的LIKE函数?
所以,例如:
like('goo*','google.com');//is true
like('*gl*','google.com');//true
like('google.com','google.com')//also true
Run Code Online (Sandbox Code Playgroud)
我知道正则表达式rullez,但不知道任何解决方案达到此目的
我正在编写一个系统,它是程序员应用程序的基础,需要检测他们对某些数据的访问.我几乎可以使用属性这样做,如下所示:
public class NiceClass {
public int x { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我进入并调整get
和set
访问器,以便他们适当地处理访问.但是,这要求用户(应用程序编程人员)将其所有数据定义为属性.
如果用户想要使用具有"正常"字段的预先存在的类(而不是属性),我无法检测到这些访问.例:
public class NotSoNiceClass {
public int y;
}
Run Code Online (Sandbox Code Playgroud)
我无法检测到访问y
.但是,我想允许使用预先存在的类.作为折衷方案,用户有责任在访问此类数据时通知我.例如:
NotSoNiceClass notSoNice;
...
Write(notSoNice.y, 0); // (as opposed to notSoNice.y = 0;)
Run Code Online (Sandbox Code Playgroud)
这样的事情.相信我,我已经非常彻底地研究了这一点,甚至直接分析字节码以检测访问因可能的间接性等而不可靠.我确实需要用户通知我.
现在我的问题是:你能推荐一种"优雅"的方式来执行这些通知吗?(是的,我知道这种情况一开始并不"优雅";我试图不让它变得更糟;)).你会怎么做?
这对我来说是个问题,因为实际上情况是这样的:我有以下课程:
public class SemiNiceClass {
public NotSoNiceClass notSoNice { get; set; }
public int z { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果用户想要这样做:
SemiNiceClass semiNice;
...
semiNice.notSoNice.y = 0;
Run Code Online (Sandbox Code Playgroud)
他们必须做这样的事情:
semiNice.Write("notSoNice").y = 0;
Run Code Online (Sandbox Code Playgroud)
哪里Write
会返回克隆 …
几天前我参加了一次技术面试,有人问我C编译器的implments如何使用可变数量的参数?它是如何通过堆栈的?
有谁知道或可以探索那个?
谢谢,丹