返回IQueryable<T>
与IEnumerable<T>
?有什么区别?
IQueryable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;
IEnumerable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;
Run Code Online (Sandbox Code Playgroud)
两者都会延迟执行,何时应该优先于另一个?
下面的代码片段有什么区别?两个都不会使用线程池线程吗?
例如,如果我想为集合中的每个项目调用一个函数,
Parallel.ForEach<Item>(items, item => DoSomething(item));
vs
foreach(var item in items)
{
Task.Factory.StartNew(() => DoSomething(item));
}
Run Code Online (Sandbox Code Playgroud) 我只是在对ArraySegment<byte>
类进行子MessageEncoder
类化时遇到了这种类型.
我现在明白它是给定数组的一部分,取一个偏移量,不可枚举,并且没有索引器,但我仍然无法理解它的用法.有人可以用一个例子解释一下吗?
下面有什么区别
ThreadPool.QueueUserWorkItem
Run Code Online (Sandbox Code Playgroud)
VS
Task.Factory.StartNew
Run Code Online (Sandbox Code Playgroud)
如果对于某些长时间运行的任务调用上述代码500次,是否意味着将占用所有线程池线程?
或者TPL(第二选项)是否足够聪明,只能占用少于或等于处理器数量的线程?
以下是初始化静态只读字段的两种不同方法.两种方法之间有区别吗?如果是的话,什么时候应该优先于另一个呢?
class A
{
private static readonly string connectionString =
WebConfigurationManager.ConnectionStrings["SomeConnection"].ConnectionString;
}
class B
{
private static readonly string connectionString;
static B()
{
connectionString =
WebConfigurationManager.ConnectionStrings["SomeConnection"].ConnectionString;
}
}
Run Code Online (Sandbox Code Playgroud) 我使用以下代码
var processed = new List<Guid>();
Parallel.ForEach(items, item =>
{
processed.Add(SomeProcessingFunc(item));
});
Run Code Online (Sandbox Code Playgroud)
上面的代码线程是否安全?处理后的列表是否有可能被破坏?或者我应该在添加之前使用锁?
var processed = new List<Guid>();
Parallel.ForEach(items, item =>
{
lock(items.SyncRoot)
processed.Add(SomeProcessingFunc(item));
});
Run Code Online (Sandbox Code Playgroud)
谢谢.
loadwith和associatewith之间有什么区别.从我阅读的文章看来,loadwith似乎用于加载附加数据(例如客户的所有订单).而AssociateWith用于过滤数据.
这是正确的理解吗?如果有人能够通过基于示例的解释来解释这一点,那将是很好的.
我创建了一个设置为自动启动的Windows服务.此服务在启动时连接到数据库服务.问题是数据库服务似乎是在我的服务之后启动的.是否有一种编程方式来定义此依赖项,以便在数据库服务启动后启动我的服务.
我发现这篇文章http://www.boyce.us/windows/servertipcontent.asp?ID=7谈到添加一个注册表项来做到这一点.我想知道是否有C#方式来做到这一点?
更新:
添加到上面的问题.这是另一种情况.使用installshied安装服务,不需要projectinsaller.似乎installshield查找从ServiceBase类派生的类并安装每个服务.如何在这种情况下添加依赖项?
我的一个存储过程执行时间过长.看一下查询执行计划,我能够找到操作耗时太长时间.它是一个嵌套的循环物理运算符,具有外部表(65991行)和内部表(19223行).在嵌套循环上,它显示估计行= 1,268,544,993(乘以65991乘19223),如下所示:
我阅读了一些关于用于连接的物理运算符的文章,并且对于这种情况是否嵌套循环或散列匹配更好一点感到困惑.从我可以收集到的:
散列匹配 - 当没有有用的索引可用时,优化器使用散列匹配,一个表明显小于另一个表,表不在连接列上排序.散列匹配也可能表示可以使用更有效的连接方法(嵌套循环或合并连接).
问题:在这种情况下,哈希匹配会比嵌套循环更好吗?
谢谢
EmployeeId Name ManagerId
------------------------------
1 A null
2 B null
3 C 1
4 D 3
5 E 2
Run Code Online (Sandbox Code Playgroud)
只是使用这个表,如何编写linq查询(使用linq to sql)来递归获取父数据.
例如,如果选择的雇主ID为4,则应该给出Id:4,3,1的雇员列表
谢谢.
c# ×9
c#-4.0 ×3
linq-to-sql ×3
linq ×2
.net ×1
.net-4.0 ×1
arrays ×1
c#-2.0 ×1
c#-3.0 ×1
ienumerable ×1
initializer ×1
iqueryable ×1
list ×1
t-sql ×1
threadpool ×1
windows ×1