使用linq通过加入字典更新c#中的数据表

时间:2016-01-26 14:55:18

标签: c# linq datatable

我的数据表看起来像

Id|Name|Status
1 |a   |1
2 |b   |1
3 |c   |1
4 |d   |1

和字典有像

这样的键值对
key Value
2    y 
4    Y

字典将仅包含其状态需要更新的那些键

我需要的更新数据表如下所示

Id|Name|Status
    1 |a   |1
    2 |b   |0
    3 |c   |1
    4 |d   |0

使用linq在c#中可以实现这一点。

1 个答案:

答案 0 :(得分:1)

如果我理解你想要正确做什么,我能够让它发挥作用。其他人可能有一个更优雅的解决方案,但这是有效的......

oDt.Select(string.Format("[Id] in ({0})",string.Join(",",oDict.Select(x=>x.Key)))).ToList<DataRow>().ForEach(r=>r["Status"] = 0);

其中oDt是你的数据表,而oDict是你的字典。