如何遍历自定义类型列表并从另一个列表中替换一个属性?

时间:2018-03-07 06:58:03

标签: c# linq

我有以下2个列表:

List<decimal>data;
List<Myclass> mylist;//MyClass has a property called MyProp which is of type decimal.

已填充。 现在,我想迭代myList并用数据列表替换每个MyProp。 我可以通过foreach循环来实现,但是寻找优雅的LINQ解决方案,请帮忙吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以Zip两个列表一起使用!

list.Zip(data,
         (x, y) => x.MyProp = y // this will be run for everything in list
        ).ToList(); // ToList is needed to actually run the query, otherwise it will be deferred.
// now the values should all be assigned.

答案 1 :(得分:0)

以下是使用Zip方法完成的示例代码

public class Myclass
{
    public decimal MyProp { get; set; }
}

List<decimal> data = new List<decimal>() { 1,2,3,4,5};
List<Myclass> myList = new List<Myclass>() { new Myclass(), new Myclass(), new Myclass()};

data.Zip(myList, (dataItem, myListItem) => 
{
    myListItem.MyProp = dataItem;
    return myListItem;
}).ToList();