LINQ将var集合转换为特定的集合类型

本文关键字:集合 集合类 类型 var 转换 LINQ | 更新日期: 2023-09-27 18:29:45

我有这个代码:

public class ExistedProducts
 {
    public int productID{get;set;}
    public int productQte{get;set;}
 }

。。..

public List<ExistedProducts> GetStock()
{
   var result = from p in Products 
   join st in Stock on st.ProductID equals p.ID
   select new{ExistedProductID=p.ID,ExistedProductQte = st.Qte};
   return result.Cast<ExistedProducts>.ToList();// exception here 
}

我的第一个问题是,我可以直接从查询中生成类型化集合吗?如果不是,我该如何进行强制转换(我调用了Cast()方法,但出现了一个异常,表示无法从进行强制转换

'<>f_AnonymousType0`2[System.Int32,System.Int32]?

我想避免循环复制!

LINQ将var集合转换为特定的集合类型

是的,您可以直接投影类型ExistedProducts,而不是投影anonymous type,如下所示:-

var result = (from p in Products 
             join st in Stock on st.ProductID equals p.ID
             select new ExistedProducts
                         {
                              productID = p.ID,
                              productQte = st.Qte
                         }).ToList();
return result;