当前位置:  开发笔记 > 编程语言 > 正文

LINQ优化问题

如何解决《LINQ优化问题》经验,为你挑选了1个好方法。

所以我一直在使用LINQ,我有一个问题.

我有一组对象.它们根据其属性值分为两类.我需要为一个组设置一个不同的属性,为另一个组设置一个方法:

foreach(MyItem currentItem in myItemCollection)
{
    if (currentItem.myProp == "CATEGORY_ONE")
    {
        currentItem.value = 1;
    }
    else if (currentItem.myProp == "CATEGORY_TWO")
    {
         currentItem.value = 2;
    }
}

或者,我可以这样做:

myItemCollection.Where(currentItem=>currentItem.myProp == "CATEGORY_ONE").ForEach(item=>item.value = 1);
myItemCollection.Where(currentItem=>currentItem.myProp == "CATEGORY_TWO").ForEach(item=>item.value = 2);

我认为第一个更快,但认为检查不会有什么坏处.



1> Jon Skeet..:

只迭代一次集合(并且不调用任何代理,而不是使用尽可能多的迭代器)可能会稍微快一点,但我非常怀疑它是否会很重要.

编写完成工作的最易读的代码,只在问题出现时担心微观层面的性能(即容易改变的地方).

我认为在这种情况下,第一段代码更具可读性.LINQy少,但更具可读性.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有