第一个使用IEnumerable Single方法,它具有InvalidOperationException。

RowObjectType = rowObjectAssemblyTypes.Single(type => type.Name == rowObjectTypeName);


我认为第二个功能与第一个功能相同,并且工作正常。

foreach (var type in rowObjectAssemblyTypes)
        {
            if (type.Name == rowObjectTypeName)
            {
                RowObjectType = type;
            }
        }


我正在使用.Net3.5。谁能告诉我他们之间的区别?

最佳答案

第一个可能崩溃,因为有零个或多个项目。这很可能是一个错误,Single可以提醒您!

循环无关紧要。它可能永远不会分配给RowObjectType或执行多次。从语义上讲,这可能不是您想要的。

如果您希望零项,请使用SingleOrDefault

关于c# - 这两个过程有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30186887/

10-12 03:34