首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用日志记录在一个班轮中编写foreach循环?

如何用日志记录在一个班轮中编写foreach循环?
EN

Stack Overflow用户
提问于 2020-08-13 06:18:57
回答 1查看 664关注 0票数 0

我有一个IEnumerable<>对象,我正在使用for循环进行迭代,如下所示:

代码语言:javascript
复制
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);
}

我只是好奇地想知道是否有任何方法可以在foreach循环上面使用one-liner中的日志记录行编写。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-13 06:23:33

List有一个ForEach方法,它将对它的每个元素调用提供的lambda:

代码语言:javascript
复制
dataHolder.ToList().ForEach(x => loggingService.Warn(LOG_TITLE, "Value: " + x.ClientName));

现在还不清楚你在问什么,但这可能是一种“在一堆条目上运行代码,而不使用foreach (区分大小写的)”的方法。

不过,我不确定我是否会使用它,因为它需要一个额外的列表转换步骤(ForEach是List,而不是LINQ ),当foreach在现有的IEnumerable上正常工作时。因此,我认为,如果您可以预测代码表示的原因,那么使用ForEach是我最喜欢的模因之一的一个很好的用例:

ps;this question有一些精彩和冗长的讨论,关于差异和什么时候可能更好地使用一个而另一个。由于您声明的目标并不包括任何更好的变异状态、线程安全等点,所以我将坚持foreach

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63389224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档