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:12:14.917 に答える
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 に答える