LINQ查询返回具有转换属性的原始对象的集合



我目前有工作代码

foreach (var item in list)
{
item.Property1= SomeFunction(item.Property1);
}
return list;

我想将其转换为LINQ查询,但不太确定如何转换。我怀疑我需要使用.Select,但不确定如何正确执行。我的尝试是尝试:

return list.Select(r => SomeFunction(r.Property1));

但当然,这只返回了一个Properties的集合,而我想要一个原始对象的集合,其中包含一个更改的属性

总的来说,我认为这可能是个坏主意,但现在开始。。。

您想要类似list.Select(x => { SomeFunction(x); return x; });的东西,其中SomeFunction是一个转换所需属性的函数。

完整示例:

public class A { public int Data { get; set; } }
public void SomeFunction(A a)
{
a.Data *= 2;
}
var listy = new List<A>() { 
new A() { Data = 3 }, 
new A() { Data = 5 } 
};
listy.Select(x => { SomeFunction(x); return x; })

输出(C#交互式shell(:

Enumerable.WhereSelectListIterator<Submission#9.A, Submission#9.A> { Submission#9.A { Data=6 }, Submission#9.A { Data=10 } }

假设list类型为List<>:

list.ForEach(x => x.Property1 = SomeFunction(item.Property1));

但是foreach到底出了什么问题?

最新更新