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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 01:03:10  来源:igfitidea点击:

how to convert an array of objects to list

c#

提问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();