【发布时间】:2016-03-31 22:50:03
【问题描述】:
Resharper 经常抱怨这个:IEnumerable 可能有多个枚举。例如:
private int ParseLoanNumber(IEnumerable<string> lines)
{
var loanNumber = 0;
var item = lines.FirstOrDefault(l => l.StartsWith(" LN# 00"));
if (item != null)
{
loanNumber = item.ParseInt(8, 10).GetValueOrDefault();
}
else
{
item = lines.FirstOrDefault(l => l.StartsWith(" LOAN-NO (CONT'D) 00"));
if (item != null)
{
loanNumber = item.ParseInt(19, 10).GetValueOrDefault();
}
}
// Yada yada...
}
推荐的解决方案是将enumerable 转换为list 或array,并对其进行迭代。
这让我很困惑。你仍然会枚举一些东西,两种类型(数组和列表)都实现了IEnumerable。那么这如何解决任何问题,或以任何方式提高性能?
【问题讨论】:
标签: c# resharper ienumerable enumeration