讓假設有三列在我的DataTable在不使用循環的情況下更新C#中的DataTable?
代碼
名
顏色
如果我知道的代碼和名稱,我該怎麼更新該代碼和名稱符合我的標準的特定行的顏色?我想在不使用循環的情況下做到這一點!
讓假設有三列在我的DataTable在不使用循環的情況下更新C#中的DataTable?
代碼
名
顏色
如果我知道的代碼和名稱,我該怎麼更新該代碼和名稱符合我的標準的特定行的顏色?我想在不使用循環的情況下做到這一點!
你可以使用LINQ:
DataRow dr = datatable.AsEnumerable().Where(r => ((string)r["code"]).Equals(someCode) && ((string)r["name"]).Equals(someName)).First();
dr["color"] = someColor;
當然,我假設所有這些標準都是字符串。您應該將演員改爲正確的類型。
現在我在Data.EnumerableRowCollection不包含.First()我們只是更新行如何將在DataTable中反映出這些變化 – 2011-05-21 11:09:58
確保你在使用System.Linq,但是如果沒有被引用,那麼Where()不應該工作。「反映變化」你是指看到他們在屏幕上?你需要重新綁定DataTable到任何你用來顯示它 – Farinha 2011-05-21 11:33:35
// Use the Select method to find all rows matching the name and code.
DataRow[] rows = myDataTable.Select("name 'nameValue' AND code = 'codeValue');
for(int i = 0; i < rows.Length; i ++)
{
rows[i]["color"] = colorValue;
}
DataTable recTable = new DataTable();
// do stuff to populate table
recTable.Select(string.Format("[code] = '{0}' and [name] = '{1}'", someCode, someName)).ToList<DataRow>().ForEach(r => r["Color"] = colorValue);
這仍然是一個循環 – 2017-02-01 15:58:11
爲什麼在這個世界上你不想使用循環來做到這一點? *某處*,需要循環。即使你使用LINQ,循環仍然在內部執行。 – 2011-05-21 14:44:58
科迪,OP想更新1排。字典不需要循環。 – 2011-05-21 20:20:54
表格不是字典 – 2012-12-19 22:49:20