2013-04-26 71 views

回答

2
var columns = dataSet.Tables 
        .Cast<DataTable>() 
        .SelectMany(t=>t.Columns 
            .Cast<DataColumn>() 
            .Select(c=>c.ColumnName)); 

,或者如果你想要的表名以及

var columns = dataSet.Tables 
        .Cast<DataTable>() 
        .SelectMany(t=>t.Columns 
            .Cast<DataColumn>() 
            .Select(c=> new { 
                 t.TableName, 
                 c.ColumnName 
                } 
              ) 
           ); 

Cast<>是necesary打開非通用IEnumerableTablesColumns性質爲IEnumerable<T>可以在Linq查詢中使用的類型。

+0

+1更好的主意(使用'SelectMany')。 – 2013-04-26 13:43:12

+0

嗨斯坦利,你能告訴我應該做什麼,如果我想要的數據也.. – ravi 2013-11-27 04:54:39

0

試試這個:

List<string> result = new List<string>(); 

foreach (DataTable item in dataSet.Tables) 
{ 
    result.AddRange(item.Columns.Cast<DataColumn>().Select(i => i.ColumnName).ToList()); 
} 
3

LINQ沒有循環

var columnNames = (from table in dataSet.Tables.OfType<DataTable>() 
       from column in table.Columns.OfType<DataColumn>() 
       select column.ColumnName).ToList(); 
+0

謝謝你的幫助! – 2013-04-29 07:16:27

相關問題