2

Possible Duplicate:
Conversion of System.Array to List

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?

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;
        }    
    }
}
Community
  • 1
  • 1
Raghav55
  • 3,055
  • 6
  • 28
  • 38

3 Answers3

12

Just pass the array in List constructor.

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

To Convert back:

PersonData[] array = aPerList.ToArray();

If you don't want to use LINQ ToArray then Use List.CopyTo:

PersonData[] newArray = new PersonData[aPerList.Count];
aPerList.CopyTo(arrArray,0);
Habib
  • 219,104
  • 29
  • 407
  • 436
1

Using Linq:

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

Without using Linq:

List<PersonData> list = new List<PersonData>(aPersonDataArr );
jags
  • 2,022
  • 26
  • 34
0
    //array into list
    List<PersonData> list1 = new List<PersonData>(aPersonDataArr);

    //list into array
    Array array1 = list1.ToArray();
Dean
  • 499
  • 6
  • 13
  • 34