从List <object>中选择并分配给新的List <object>

时间:2019-01-24 07:26:58

标签: c# list linq

使用以下代码获取空引用,如何正确分配 将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();
}

3 个答案:

答案 0 :(得分:2)

resultList<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");
相关问题