2009-02-10 53 views
0

我使用C#2.0,我不禁想,這是不是搜索集合(在這種情況下,一個DataTable)的價值的最有效的方法:重構我的DataTable搜索代碼

bool found = false; 
foreach (DataRow row in data.Rows) 
{ 
    if (id == row["rowID"]) 
    { 
     found = true; 
     break; 
    } 
} 
if (!found) 
{ 
    //Do stuff here 
} 

任何人都可以想到一個「更乾淨」的方式來做到這一點?

回答

1

這是一個線性搜索,這是最慢的實際搜索存在。

一種選擇,如果你想繼續使用一個DataTable,是定義一個主鍵,並使用find()方法:

myTable.PrimaryKey = new DataColumn[] { new DataColumn("rowID") }; 
DataRow row = myTable.Find(id);