当前:
foreach(Item in List){ Statement1 Statement2 Statement3}
理念:
List.Foreach(Item => Method(Item))
显然,Method()包含Statement1..3
这是一种好的做法还是数千次调用方法会降低性能?我的名单有10,000-100,000个元素.
解决方法 好吧,首先,您可以使用方法组转换使ForEach语句更有效List.ForEach(Method);
这消除了一个间接层.
就个人而言,我认为这不是一个好主意.第一种方法更具可读性,并且可能也可以执行.在这里使用List< T> .ForEach有什么好处?
Eric lippert在excellent blog post中更多地讨论了这个问题.我会使用List< T> .ForEach如果你已经有一个你想要针对每个元素执行的委托,但是我不会仅为了一个代表而引入一个委托和一个额外的方法它.
在效率方面,我不希望看到太大的差异.第一种形式可能执行得更好,因为它没有委托调用的间接 – 但如果ForEach中的迭代循环利用它可以访问内部数据结构的事实,则第二种形式可能更有效.列表< T>.我非常怀疑你会注意到它.当然,如果你真的很烦,你可以尝试测量它.
总结以上是内存溢出为你收集整理的c# – 在linq foreach中调用一个方法 – 有多少开销?全部内容,希望文章能够帮你解决c# – 在linq foreach中调用一个方法 – 有多少开销?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)