如何将对象数组转换为列表

时间:2012-10-18 06:21:45

标签: c#

  

可能重复:
  Conversion of System.Array to List

我想将aPersonDataArr转换为列表IList<aPersonDataArr> aPerList = ???和viceVersa - 从列表到数组。如何做到这一点,我不愿意使用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;
        }    
    }
}

3 个答案:

答案 0 :(得分:10)

只需在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);

答案 1 :(得分:1)

使用Linq:

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

不使用Linq:

List<PersonData> list = new List<PersonData>(aPersonDataArr );

答案 2 :(得分:0)

    //array into list
    List<PersonData> list1 = new List<PersonData>(aPersonDataArr);

    //list into array
    Array array1 = list1.ToArray();