C# 如何将对象数组转换为列表
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12948306/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
how to convert an array of objects to list
提问by Raghav55
Possible Duplicate:
Conversion of System.Array to List
可能的重复:
将 System.Array 转换为列表
I want to convert the aPersonDataArr to a list IList<aPersonDataArr> aPerList = ???and viceVersa - from list to array. How can this be done, I am not willing to use LINQ. Is there any other way to do it?
我想将 aPersonDataArr 转换为列表IList<aPersonDataArr> aPerList = ???,反之亦然 - 从列表到数组。这怎么能做到,我不太愿意使用 LINQ。有没有其他方法可以做到?
class PersonData
{
public string PersonName;
public int Age;
}
class Program
{
static void Main(string[] args)
{
PersonData[] aPersonDataArr = new PersonData[2];
for (int i = 0; i < aPersonDataArr.Length; i++)
{
aPersonDataArr[i].PersonName = "abcd";
aPersonDataArr[i].Age = 10;
}
}
}
采纳答案by Habib
Just pass the array in List constructor.
只需在 List 构造函数中传递数组。
IList<PersonData> aPerList = new List<PersonData>(aPersonDataArr);
To Convert back:
转换回来:
PersonData[] array = aPerList.ToArray();
If you don't want to use LINQ ToArraythen Use List.CopyTo:
如果您不想使用 LINQ,ToArray则使用List.CopyTo:
PersonData[] newArray = new PersonData[aPerList.Count];
aPerList.CopyTo(arrArray,0);
回答by jags
Using Linq:
使用 Linq:
PersonData[] aPersonDataArr = new PersonData[2];
List<PersonData> list = aPersonDataArr.ToList();
Without using Linq:
不使用 Linq:
List<PersonData> list = new List<PersonData>(aPersonDataArr );
回答by Dean
//array into list
List<PersonData> list1 = new List<PersonData>(aPersonDataArr);
//list into array
Array array1 = list1.ToArray();

