使用Linq连续选择多个元素

时间:2013-03-08 06:09:47

标签: c# .net linq

我的代码如下

var users = MyTable.AsEnumerable()
                      .Select(x => new { x.Field<string>("Col1"),x.Field<string>  
                       ("Col2")}).ToList();

编译时我得到了

无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问权声明匿名类型成员。

3 个答案:

答案 0 :(得分:15)

您需要为匿名类型

中的每个字段指定名称
var users = MyTable.AsEnumerable()
  .Select(x => 
     new { Col1 = x.Field<string>("Col1"), Col2 = x.Field<string>("Col2")})
  .ToList();

唯一可以省略匿名类型字段名称的时间是表达式本身是编译器可以使用的简单名称。例如,如果表达式是字段或属性,则可以省略名称。在这种情况下,表达式是泛型方法调用,没有编译器将使用的名称

答案 1 :(得分:2)

试试这个:

var users = MyTable.AsEnumerable()
                      .Select(x => new
                      {
                        Col1 = x.Field<string>("Col1"),
                        Col2 = x.Field<string>("Col2")})
                        .ToList();

答案 2 :(得分:2)

您可以使用此

var users = MyTable.AsEnumerable()
                      .Select(x => new
                      {
                        Col1 = x.Field<string>("Col1"),
                        Col2 = x.Field<string>("Col2")})
                        .ToList();