2016-09-02 20 views
0

配列に格納されている名前またはインデックスで列を選択できますか?LINQ C#配列内の名前で複数の列を選択

String[] columnsWhichINeed = new String[] { "column1", "column2" }; 

DataColumn[] aCols = dataTable.Columns.Cast<DataColumn>() 
      .Where(c => c.ColumnName.NEEDSOMEMAGICHERE; 
      .Select(c => new DataColumn(c.ColumnName, c.DataType)) 
      .ToArray(); 

答えて

3

あなたはおそらく、私はあなたが探しているものだと思い

.Where(c => columnsWhichINeed.Contains(c.ColumnName)); 
0

ようContains()メソッドを使用することができますがContains()です:

DataColumn[] aCols = dataTable.Columns.Cast<DataColumn>() 
     .Where(c => columnsWhichINeed.Contains(c.ColumnName)) 
     .Select(c => new DataColumn(c.ColumnName, c.DataType)) 
     .ToArray(); 

あなたは大文字と小文字を区別しない文字列マッチングを行う必要がある場合を除き、その場合はAny()が必要です:

DataColumn[] aCols = dataTable.Columns.Cast<DataColumn>() 
     .Where(c => columnsWhichINeed.Any(c2 => string.Compare(c.ColumnName, c2, true) == 0)) 
     .Select(c => new DataColumn(c.ColumnName, c.DataType)) 
     .ToArray();