【问题标题】:simplify linq expression in for each loop为每个循环简化 linq 表达式
【发布时间】:2021-07-09 17:19:49
【问题描述】:

我想在集合或列表中删除或设置等于无的项目 以下代码有效,但是否有更简单的表达式

For Each i In response.Report.Arrestee
            i.ArresteeArmedWithCode = Nothing
        Next

【问题讨论】:

  • 与下面的答案有关,没有什么能阻止你在IEnumerable(Of T)上编写自己的ForEach扩展方法(也就是说,毕竟Linq本身就是这样,一组扩展方法在IEnumerable(Of T))。话虽如此,这样做不太可能显着提高清晰度,通常最好明确说明循环。

标签: vb.net expression simplify


【解决方案1】:

LINQ 不应该有副作用,所以不要尝试创建设置值的 LINQ 表达式。

如果ArresteeList<T>,你可以做Arrestee.ForEach(Function(a) a.ArresteeArmedWithCode = Nothing)(ForEach 是一个List 的东西,而不是一个LINQ 的东西),但是对于这是否更简单,人们相对固执己见。 行数更少,但简洁并不总能带来清晰

【讨论】:

    猜你喜欢
    • 2011-07-19
    • 1970-01-01
    • 2021-11-20
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多