Reputation: 907
Is it possible to select columns by names or indexes, which are stored in array?
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();
Upvotes: 0
Views: 1059
Reputation: 19496
I think what you're looking for is Contains()
:
DataColumn[] aCols = dataTable.Columns.Cast<DataColumn>()
.Where(c => columnsWhichINeed.Contains(c.ColumnName))
.Select(c => new DataColumn(c.ColumnName, c.DataType))
.ToArray();
unless you need to do case-insensitive string matching, in which case you'll need 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();
Upvotes: 0
Reputation: 77876
You can probably use Contains()
method like
.Where(c => columnsWhichINeed.Contains(c.ColumnName));
Upvotes: 3