2016-09-02 4 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(); 
이 필요합니다.
관련 문제