【问题标题】:Get Specified row index of a column from a data table having values contained in a string从具有包含在字符串中的值的数据表中获取列的指定行索引
【发布时间】:2014-04-06 18:34:01
【问题描述】:
我有一个包含 Select 和 Value 两列的数据表。
Select Value
0 213
0 314
0 282
我有一个名为 Ids={213,314} 的整数数组
如果 Ids 的值出现在数据表列“values”中,则更新“select”
列为 1。
我必须使用 Linq 来做到这一点。请帮忙
【问题讨论】:
标签:
c#
linq
datatable
linq-to-dataset
【解决方案1】:
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);