使用以下代码获取空引用,如何正确分配
将result
变量添加到新列表:
var result = from loan in loansList
where loan.supervisorID == "1188775"
select loan;
List<Loan> ayumiLoans = new List<Loan>();
ayumiLoans = result as List<Loan>;
foreach (Loan aLoan in ayumiLoans )
{
aLoan.printLoan();
}
答案 0 :(得分:2)
result
是List<Loan>
类型的 not ;我们只能说它实现了IEnuemrable<Loan>
。那就是为什么
result as List<Loan>;
是null
。然后将null
分配给ayumiLoans
ayumiLoans = result as List<Loan>; // ayumiLoans is null
当您尝试遍历null
时会收到错误消息。尝试
var result = from loan in loansList
where loan.supervisorID == "1188775"
select loan;
List<Loan> ayumiLoans = new List<Loan>();
// Add all result items into ayumiLoans
ayumiLoans.AddRange(result);
或
var result = from loan in loansList
where loan.supervisorID == "1188775"
select loan;
// Materialize result as List<Loan>
List<Loan> ayumiLoans = result.ToList();
答案 1 :(得分:1)
我认为您应该可以这样做:
List<Loan> ayumiLoans = new List<Loan>(result);
否则我肯定德米特里(Dmitry)做对了,他已经经常帮助我:'D
答案 2 :(得分:1)
List<T>.FindAll(Predicate<T>)
Method的使用效率更高:
List<Loan> ayumiLoans = loansList.FindAll(loan => loan.supervisorID == "1188775");