LINQ优化问题

GWL*_*osa 1 .net c# linq optimization

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

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

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

或者,我可以这样做:

myItemCollection.Where(currentItem=>currentItem.myProp == "CATEGORY_ONE").ForEach(item=>item.value = 1);
myItemCollection.Where(currentItem=>currentItem.myProp == "CATEGORY_TWO").ForEach(item=>item.value = 2);
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 6

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

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

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