使用linq将列表中的每个数字递增1

时间:2018-04-23 17:52:06

标签: .net vb.net linq

是否可以使用linq

在整数列表中为每个数字添加1

这就是我的尝试:

m.Pages = insertedPageList.ForEach(Function(x As Integer) x+= 1)

但是这个工作正常。 我能让它发挥作用的唯一方法就是这样做:

For x As Integer = 0 to insertedPageList.Count - 1 
    insertedPageList(x) = insertedPageList(x) + 1
Next

m.Pages = insertedPageList

有没有办法让这个工作与linq? 我尝试搜索表单和谷歌但无法找到这个特定问题的答案。

2 个答案:

答案 0 :(得分:2)

您可能想尝试:

m.Pages = insertedPageList.Select(Function(x As Integer) x + 1).ToList()

但它会创建一个新列表并覆盖旧列表......所以它并不是真正有效。

答案 1 :(得分:0)

您可以使用LINQ替换For Each循环,但除垂直行空间外没有任何优势:

Enumerable.Range(0, m.Pages.Count).ToList().ForEach(Sub(i As Integer) m.Pages(i) += 1)