【发布时间】:2016-03-04 11:31:58
【问题描述】:
我想从外部列表更新 IEnumerable 中的每个类属性。
class MyClass
{
public int Value { get; set; }
}
我尝试了以下
var numbers = new List<int>() { 1, 2, 3 };
var myclasses = Enumerable.Repeat(new MyClass(), numbers.Count);
myclasses.Zip(numbers, (a, b) => a.Value = b).ToList(); // Set each property [Not working as expected]
myclasses.ToList().ForEach(x => Console.WriteLine(x.Value)); // Print all properties
我希望之前的代码将在myclasses 中分别设置Value 属性和1,2,3。但是此代码在每个属性中设置3 并打印:
OUTPUT:
3
3
3
我不明白这种行为。有人可以解释一下为什么会发生这种情况以及使用 LINQ 的正确方法是什么。
【问题讨论】:
标签: c# linq ienumerable