第一个使用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/