2010-04-12 59 views
2

我還在學習(嬰兒步驟)。關注一個函數,並希望找到一個更加整潔的方式來處理我的數據表。如何使用單列中的Datarow值填充列表<string>

對於整個程序生命週期中比較常用的表格,我會將它們轉儲到數據表中並代之以查詢。什麼我希望做的是查詢的DataTable的發言權列X =「此」,與列「Y」的值直接轉換爲一個列表,以返回給調用者:

private List<string> LookupColumnY(string hex) 
    { 
     List<string> stringlist = new List<string>(); 
     DataRow[] rows = tblDataTable.Select("Columnx = '" + hex + "'", "Columny ASC"); 
     foreach (DataRow row in rows) { stringlist.Add(row["Columny"].ToString()); } 
     return stringlist; 
    } 

任何人都知道一個稍微更簡單的方法?我想這很容易,但我想知道如果我做足夠的這些,如果迭代通過foreach循環不會是一個性能問題。 TIA!

回答

4

您可以使用LINQ來簡化這個:

public IEnumerable<string> LookupColumnY(string hex) 
{ 
    return tblDataTable 
       .Select("Columnx = '" + hex + "'", "Columny ASC") 
       .Select(row => row["Columny"].ToString()); 
} 

如果需要返回一個列表,你可以添加ToList()

public IList<string> LookupColumnY(string hex) 
{ 
    return tblDataTable 
       .Select("Columnx = '" + hex + "'", "Columny ASC") 
       .Select(row => row["Columny"].ToString()) 
       .ToList(); 
} 

然而,這仍然會遍歷各行的選擇。

+0

好的,謝謝!非常感激! – James 2010-04-12 18:32:20