我正在使用C#2.0,我不禁认为这不是搜索集合(在本例中为DataTable)获取值的最有效方法:
bool found = false;
foreach (DataRow row in data.Rows)
{
if (id == row["rowID"])
{
found = true;
break;
}
}
if (!found)
{
//Do stuff here
}
有人能想到一种“更清洁”的方法吗?
答案 0 :(得分:5)
查看数据表的Select()
方法:
http://msdn.microsoft.com/en-us/library/b5c0xc84(VS.80).aspx
DataRow[] rows = data.Select("rowID=" + id.ToString());
if (rows.Length > 0)
{
//Do stuff here
}
答案 1 :(得分:1)
这是线性搜索,它是最慢的实际搜索。
如果您想继续使用DataTable,另一种方法是定义主键并使用Find()方法:
myTable.PrimaryKey = new DataColumn[] { new DataColumn("rowID") };
DataRow row = myTable.Find(id);