CRi*_*ice 4 c# linq ienumerable element
对于我的功能
IEnumerable<CallbackListRecord> LoadOpenListToProcess(CallbackSearchParams usp);
Run Code Online (Sandbox Code Playgroud)
当序列不包含任何元素时,此行会出错(应该如此)
CallbackListRecord nextRecord = CallbackSearch.LoadOpenListToProcess(p).First();
Run Code Online (Sandbox Code Playgroud)
我已将其更改为以下内容
CallbackListRecord nextRecord = null;
IEnumerable<CallbackListRecord> nextRecords = CallbackSearch.LoadOpenListToProcess(p);
if (nextRecords.Any())
{
nextRecord = nextRecords.First();
}
Run Code Online (Sandbox Code Playgroud)
是否有更好,更简单或更优雅的方法来确定IEnumerable序列是否没有元素?
你应该尽量避免枚举它超过必要的次数(即使短路,比如First和Any) - 如何:
var nextRecord = CallbackSearch.LoadOpenListToProcess(p).FirstOrDefault();
if(nextRecord != null) {
// process it...
}
Run Code Online (Sandbox Code Playgroud)
这适用于类(因为您可以只将引用与null进行比较).
| 归档时间: |
|
| 查看次数: |
4348 次 |
| 最近记录: |