2

可能重复:
System.Array 到 List 的转换

我想将 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;
        }    
    }
}
4

3 回答 3

12

只需在 List 构造函数中传递数组。

IList<PersonData> aPerList = new List<PersonData>(aPersonDataArr);

要转换回来:

PersonData[] array = aPerList.ToArray();

如果您不想使用 LINQ ToArray,请使用List.CopyTo

PersonData[] newArray = new PersonData[aPerList.Count];
aPerList.CopyTo(arrArray,0);
于 2012-10-18T06:24:08.777 回答
1

使用 Linq:

PersonData[] aPersonDataArr = new PersonData[2];
List<PersonData> list = aPersonDataArr.ToList();

不使用 Linq:

List<PersonData> list = new List<PersonData>(aPersonDataArr );
于 2012-10-18T06:24:29.987 回答
0
    //array into list
    List<PersonData> list1 = new List<PersonData>(aPersonDataArr);

    //list into array
    Array array1 = list1.ToArray();
于 2012-10-18T07:00:27.793 回答