【问题标题】:Update objects from a collection with Linq in VB.NET在 VB.NET 中使用 Linq 从集合中更新对象
【发布时间】:2015-04-27 14:25:37
【问题描述】:

鉴于这个经典的 VB.NET 代码

For Each item in myColl
   item.PropX = "New Value"
Next

用于相同目的的 linq 是什么(在 VB.NET 中)?

【问题讨论】:

  • 但您确实意识到,这一行实际上不会 更新任何项目,对吧?您需要将其具体化才能产生任何效果。
  • @E-Bat 因为你根本没有更新对象,你只是检索属性。
  • @E-Bat 看看这个链接。但是当普通的 foreach 循环可以做同样的事情时,通常不建议使用 LINQ ForEach。 stackoverflow.com/questions/200574/…
  • 您应该避免完全改变问题,尤其是在撰写本文时有 3 个答案。它是一个 c# LINQ to VB.NET LINQ,现在它是 VB.NET for each to VB.NET LINQ,而不是原来的 var query = myColl.Select(item => { item.PropX = "New Value"; return item; })。跨度>
  • @E-Bat 请不要编辑您问题的答案。你的问题和它下面的答案不是一个可变的持续对话。如果您对收到的其中一个答案有新问题,请提出另一个问题。如果您想将您的问题标记为已解决,请接受解决您问题的答案。

标签: c# .net vb.net linq


【解决方案1】:

OP上一个问题:

对于 c#,我是这样做的:

var query = myColl.Select(item => { item.PropX = "New Value"; return

项目; }).ToList()

VB.NET 的 linq 是什么?

这可能是您正在寻找的结构,尽管我不确定这是否是您想要做的,因为所有这一切都是将查询设置为字符串的 IEnumerable,它始终是“新值”。

dim query = myColl.Select(Function(item) item.PropX = "New Value")

更新问题 OP 确实对使该线程上的大多数答案无效的问题进行了更改。更新后的问题,以防再次更改:

For Each item in myColl    item.PropX = "New Value" Next

VB.NET 中相同的 linq 是什么?

更新答案:

假设 myColl 是 List 类型:

myColl.ForEach(Function(x) x.PropX = "New Value")

虽然不建议这样做。 OP 最好使用普通的foreach 循环。

【讨论】:

  • 同意。我会将其编辑为 OP 更新,但如果 OP 没有并且人们搜索上述 LINQ 表达式的 VB.Net 翻译并且这是他们正在寻找的内容,我会继续更新。跨度>
  • 感觉就像您正在尝试从集合中检索项目(因为返回项目,这在 LINQ 中不起作用)但我不确定。您希望 LINQ 代码做什么?
  • myColl.ToList().ForEach(Sub(x As Item) x.PropX = "New Value") 成功了
  • @JoshL。我已经按照 Should I rollback the OP's edits, if they just replicate my answer's proposed changes? 回滚了 OP 的问题。您应该注意部分“并且OP通过编辑将建议的解决方案合并到他们的问题中。这使得答案有点无用”。虽然我认为你的答案还可以,但很遗憾,也许 OP 这样做了
猜你喜欢
  • 2010-09-28
  • 1970-01-01
  • 2011-10-10
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多