C# 如何在LINQ中将列表项复制到对象中?

C# 如何在LINQ中将列表项复制到对象中?,c#,linq,C#,Linq,我有这样一份清单: List<object> myList=new List<object>(); myLists items: obj1 obj2 obj3 现在我需要将myList复制到MyClass的对象中: myClass.cObj1=myList[0]; myClass.cObj2=myList[1]; myClass.cObj3=myList[2]; 如果可以区分列表项: var result = new MyClass(){ cO

我有这样一份清单:

List<object> myList=new List<object>();
myLists items:
 obj1 
 obj2 
 obj3
现在我需要将myList复制到MyClass的对象中:

 myClass.cObj1=myList[0];
 myClass.cObj2=myList[1];
 myClass.cObj3=myList[2];

如果可以区分列表项:

var result = new MyClass(){
    cObj1 = myList.Where(item=> item.SomeProprty == someValue).FirstOrDefault()
   ,cObj2 = myList.Where(item=> item.SomeProprty == someValue).FirstOrDefault()
   ,cObj3 = myList.Where(item=> item.SomeProprty == someValue).FirstOrDefault()
};
当您无法区分项目并且不知道列表中有多少项目时,可以通过这种方式实现

以下代码段不工作

var v = p.Select(obj=> { obj.SetValue(s, mylist[i], null); i++; });

你可以参考

您可以尝试以下方法:

        MyClass s = new MyClass();
        int j = 0;
        s.GetType().GetProperties().ToList().ForEach(x => { x.SetValue(s, mylist[j++], null); });

你现在所做的有什么不对?你到底想实现什么?似乎你只需要pivot,看看这个:@nawfal:在实际情况中,我不知道MyList上有多少项(我有一个最大值),所以我需要先检查索引是否存在,它会变成一个脏代码!您是否正在尝试将
myList
中的项目添加到
MyClass
?谢谢,但我无法区分它们。
var v = p.Select(obj=> { obj.SetValue(s, mylist[i], null); i++; });
        MyClass s = new MyClass();
        int j = 0;
        s.GetType().GetProperties().ToList().ForEach(x => { x.SetValue(s, mylist[j++], null); });