使用LINQ直接修改值?

Joa*_*nge 2 .net c# linq

是否可以使用以下内容修改集合的元素,例如List,LinkedList等:

collection.Do ( action )
Run Code Online (Sandbox Code Playgroud)

它的作用如下:

item.Value = 0
(for each item)
Run Code Online (Sandbox Code Playgroud)

我知道调查员只提供价值,而不是参考,因此问题.

如何使用LINQ做到这一点?

Dan*_*ker 6

尝试:

void ModifyEach<T>(this IList<T> list, Func<T, T> modifier)
{
    for (int n = 0; n < list.Count; n++)
        list[n] = modifier(list[n]);
}
Run Code Online (Sandbox Code Playgroud)

用法:

List<int> x = new List<int> { 1, 3, 7 };

x.ModifyEach(n => n + 1); // increment each item
Run Code Online (Sandbox Code Playgroud)