在不使用循环的情况下在C#中更新DataTable?

Zai*_*Ali 9 .net c# datatable

假设我的DataTable中有三列

  1. 名称

  2. 颜色

如果我知道代码和名称,如何更新代码和名称与我的条件匹配的特定行的颜色?我想在不使用循环的情况下这样做!

Far*_*nha 14

您可以使用LINQ:

DataRow dr = datatable.AsEnumerable().Where(r => ((string)r["code"]).Equals(someCode) && ((string)r["name"]).Equals(someName)).First();
dr["color"] = someColor;
Run Code Online (Sandbox Code Playgroud)

当然,我假设所有这些标准都是字符串.您应该将强制转换更改为正确的类型.


Cha*_*thJ 12

// 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;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

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);
Run Code Online (Sandbox Code Playgroud)