从包含字符串中的值的数据表中获取列的指定行索引

时间:2014-04-06 18:34:01

标签: c# linq datatable linq-to-dataset

我有一个数据表,其中有两列Select和Value。

Select Value
 0      213
 0      314
 0      282

我有一个名为Ids = {213,314}的整数数组 如果Ids的值出现在数据表列"值"然后更新"选择" 列为1。 我必须使用Linq这样做。请帮忙

1 个答案:

答案 0 :(得分:0)

Linq用于查询,而不是用于更新。所以你必须分两步完成任务。首先是查询应该更新的行:

var rows = from r in table.AsEnumerable()
           where Ids.Contains(r.Field<int>("Value"))
           select r;
// Or lambda syntax
// rows = table.AsEnumerable().Where(r => Ids.Contains(r.Field<int>("Value")))

第二部分是更新选定的行,不涉及Linq:

foreach(var row in rows)
    row.SetField("Select", 1);