我可以使用.Select进行LINQ选择而无需使用类对象

时间:2011-10-14 20:34:28

标签: c# xml linq c#-3.0

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

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


          }

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

2 个答案:

答案 0 :(得分:2)

这取决于你要对类型做什么(将它传递给方法之外)。匿名类型是由编译器生成的类,您不必自己完成生成它们的工作。但是你又不能将它们传递给其他方法。

答案 1 :(得分:1)

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

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

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