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

C# 如何遍历自定义类型的列表并从另一个列表中替换一个属性?,c#,linq,C#,Linq,我有以下两个清单: List<decimal>data; List<Myclass> mylist;//MyClass has a property called MyProp which is of type decimal. Listdata; 列出我的清单//MyClass有一个名为MyProp的属性,其类型为decimal。 这些都是有人居住的。 现在,我想遍历myList并用数据列表替换每个MyProp。 我可以通过foreach循环来实现,但我正在寻找优雅

我有以下两个清单:

List<decimal>data;
List<Myclass> mylist;//MyClass has a property called MyProp which is of type decimal.
Listdata;
列出我的清单//MyClass有一个名为MyProp的属性,其类型为decimal。
这些都是有人居住的。 现在,我想遍历myList并用数据列表替换每个MyProp。 我可以通过foreach循环来实现,但我正在寻找优雅的LINQ解决方案,有什么帮助吗


提前谢谢。

您可以
将这两个列表压缩在一起

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.

下面是一个示例代码,说明如何使用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();
公共类Myclass
{
公共十进制MyProp{get;set;}
}
列表数据=新列表(){1,2,3,4,5};
List myList=new List(){new Myclass(),new Myclass(),new Myclass()};
data.Zip(myList,(dataItem,myListItem)=>
{
myListItem.MyProp=数据项;
返回myListItem;
}).ToList();

更换标准是什么?如果只是列表索引,请使用。
Myclass
只有一个属性,即
decimal
?这就是你需要上课的原因吗?