【问题标题】:Updating tables with Linq expressions使用 Linq 表达式更新表
【发布时间】:2010-05-26 22:39:19
【问题描述】:

我发现的大多数示例都处理 Linq to 实体,这不是我需要的。我有一个标准的 DataTable,我需要在返回给调用者之前对其进行修改。我可以遍历普通的 Table.Rows 集合或使用新的扩展方法执行类似的操作:

foreach (var x in table.AsEnumerable()) {
    if (x.Field<int>("SomeField") > SomeValue)
        x.SetField<string>("OtherField", "OtherValue");
}

但我仍然手动循环遍历整个行集合。不一定有什么大不了的,但我想知道是否有更优雅的方法可以用 Linq 以某种方式完成此任务,因为我需要创建一个表达式来迭代查询结果并执行任意操作,而不是只需从被枚举的容器中选择元素。

【问题讨论】:

    标签: linq datatable


    【解决方案1】:

    我想你想知道是否有某种扩展方法,例如

    stuff.ForEach(x => x.Value = "new value"); 
    

    不幸的是,没有这样的事情。当我开始使用 LINQ to SQL 时,我也想要同样的东西。但不幸的是,您必须使用 for 循环。

    【讨论】:

    • 看起来你获得了“风滚草”奖,如果有的话:D 感谢您的评论......是的,我几乎认为没有办法做到这一点,但我的 Linq-fu 是那时候弱了一点。
    • 哈!我才意识到这是大约一年前被问到的。而且 MS 还没有实现 ForEach 方法。
    猜你喜欢
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多