枚举性能

Dan*_*elG 5 c# performance enumeration

请考虑以下代码示例:

IEnumerable<Y> myEnumeration = *some linq stuff into a datatable*

If (myEnumeration.Count() > X)
{
    foreach(Y bla in myEnumeration)
    {
       // do something
    }
 }
Run Code Online (Sandbox Code Playgroud)

这会导致2次枚举吗?伯爵 - 召唤+ foreach?如果是这样,有没有办法避免其中一个枚举?

提前致谢

编辑myEnumeration.Count - > myEnumeration.Count()(扩展方法)

It'*_*ie. 2

如果它Count不是一个属性,而是一个方法Enumerable.Count(正如我所期望的那样)。在这种情况下,我建议预先将其放入列表中:

List<Y> myList = *some linq stuff into a datatable*.ToList();
if (myList.Count > X)
    foreach (Y bla in myList)
        //do something
Run Code Online (Sandbox Code Playgroud)