是否可以将以下 'foreach' 编写为 LINQ 语句,我想更一般的问题是可以将任何 for 循环替换为 LINQ 语句。
我对任何潜在的性能成本不感兴趣,只对在传统命令式代码中使用声明性方法的潜力感兴趣。
private static string SomeMethod()
{
if (ListOfResources .Count == 0)
return string.Empty;
var sb = new StringBuilder();
foreach (var resource in ListOfResources )
{
if (sb.Length != 0)
sb.Append(", ");
sb.Append(resource.Id);
}
return sb.ToString();
}
干杯
AWC
最佳答案
当然。哎呀,您可以用 LINQ 查询替换算术:
http://blogs.msdn.com/ericlippert/archive/2009/12/07/query-transformations-are-syntactic.aspx
但你不应该。
查询表达式的目的是表示查询操作。 “for”循环的目的是迭代特定语句,以便多次执行其副作用。这些通常非常不同。我鼓励用更清晰地查询数据的更高级别的结构来替换其目的仅仅是查询数据的循环。我强烈反对用查询理解替换产生副作用的代码,尽管这样做是可能的。
关于c# - 是否可以将所有 'for' 循环替换为 LINQ 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224012/