10

我的代码如下

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

在编译我得到

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

4

3 回答 3

17

您需要为匿名类型中的每个字段命名

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

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

于 2013-03-08T06:11:29.403 回答
2

试试这个:

var users = MyTable.AsEnumerable()
                      .Select(x => new
                      {
                        Col1 = x.Field<string>("Col1"),
                        Col2 = x.Field<string>("Col2")})
                        .ToList();
于 2013-03-08T06:11:32.633 回答
2

你可以用这个

var users = MyTable.AsEnumerable()
                      .Select(x => new
                      {
                        Col1 = x.Field<string>("Col1"),
                        Col2 = x.Field<string>("Col2")})
                        .ToList();
于 2013-03-08T06:12:14.917 回答