Выберите несколько элементов в строке, используя Linq

Мой код выглядит следующим образом

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

При компиляции я получаю

Недопустимый декларатор участника анонимного типа. Члены анонимного типа должны быть объявлены с назначением членов, простым именем или доступом к члену.

Ответ 1

Вам нужно указать имя для каждого из полей анонимного типа

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

Единственный раз, когда имя поля анонимного типа можно пропустить, - это когда само выражение является простым именем, которое может использовать компилятор. Например, если выражение является полем или свойством, тогда имя можно опустить. В этом случае выражение является общим вызовом метода и не имеет имени, которое компилятор будет использовать

Ответ 2

Попробуйте следующее:

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

Ответ 3

Вы можете использовать этот

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