我可以做LINQ选择与.select而不必使用类对象

本文关键字:不必 对象 select LINQ 选择 我可以 | 更新日期: 2023-09-27 18:11:22

我想首先,什么是更好的做法?

List<Employee> _employee = new List<Employee>();
var _test = xDoc.Descendants("RID")
         .Select (x => new Employee()
          { 

          }

或者使用Var列表或其他东西?如果这是更好的选择,我会怎么做?这只是从xDoc中提取1-2条数据。

我可以做LINQ选择与.select而不必使用类对象

这取决于您将如何处理该类型(将其传递到方法外部)。匿名类型是由编译器生成的类,您不必自己费力地生成它们。但是你也不能把它们传递给其他方法

如果你不打算在方法之外使用对象,你可以创建一个匿名类型,如下所示:

var _employee = xDoc.Descendants("RID")
     .Select (x => new 
      { 
        FirstName = //Something
        //Other properties here
      }).ToList(); //ToList optional

它仍然是强类型的,但是你不能返回它,因为你不能指定一个匿名类型作为返回类型。(除非在c# 4中使用dynamic)