从这里找到的文档:http: //msdn.microsoft.com/de-de/library/system.data.datatable.compute (v=vs.80).aspx
语法是:
dt.Compute(expression, filter);
expression
需要是一个聚合函数,如 Sum、Count 或 Average 。
该filter
部分设置与表达式一起使用的字段。如果您的列被调用colTest
并且该字段应包含Test
您的过滤器,则为:colTest == 'Test'
编辑
据我了解,如果某个字段包含“测试”,您有一个列要更改内容。
我写了这个快速模型来演示如何在没有dt.Compute()
DataTable table = new DataTable();
table.Columns.Add("id", typeof(int));
table.Columns.Add("Test", typeof(string));
table.Columns.Add("ValueToChange", typeof(string));
table.Rows.Add(1, "1");
table.Rows.Add(2, "0");
table.Rows.Add(3, "1");
table.Rows.Add(4, "0");
table.Rows.Add(5, "1");
//Select all Rows in which the column Test is "1"
var rows = table.AsEnumerable().Where (t => t.Field<string>("Test") == "1");
foreach (var x in rows)
{
//set the field ValueToChange to "changed"
x.SetField("ValueToChange", "changed");
//linqpad output. ignore it
x.Dump();
}
这可能不是您的场景,但您可以通过几个快速步骤对其进行调整。