我有一个IEnumerable<>
对象,我正在使用 for 循环进行迭代,如下所示:
IEnumerable<Process> dataHolder = GetData();
// how to write below foreach loop in one-liner?
foreach (var x in dataHolder)
{
loggingService.Warn(LOG_TITLE, "Value: " + x.ClientName);
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有任何方法可以foreach
在one-liner
.
List 有一个 ForEach 方法,它会在它的每个元素上调用一个提供的 lambda:
dataHolder.ToList().ForEach(x => loggingService.Warn(LOG_TITLE, "Value: " + x.ClientName));
Run Code Online (Sandbox Code Playgroud)
不是很清楚你在问什么,但这可能是一种“在一堆项目中的每个项目上运行代码,而不使用这个词foreach
(区分大小写)”的方法
我不确定我会使用它,因为它需要一个额外的 List 转换步骤(ForEach 是 List 的东西而不是 LINQ 的东西)什么时候foreach
可以在你拥有的现有 IEnumerable 上正常工作......因此我会声称对于我最喜欢的模因之一,当您出于代码表示原因可以使用 foreach 时使用 ForEach 是一个很好的用例:
ps; 这个问题有一些关于差异的精彩而冗长的论述,以及何时使用一个比另一个更好。由于您声明的目标不包含任何更细微的变异状态、线程安全等,我会坚持foreach
归档时间: |
|
查看次数: |
242 次 |
最近记录: |