code

목록에서 변환

codestyles 2020. 11. 10. 08:08
반응형

목록에서 변환 배열 T []


강력한 형식을 변환하는 간단한 방법이있다 List<T>: 예를 들어, 동일한 유형의 배열을 List<MyClass>하려면 MyClass[]?

간단히 말해서 하나의 메서드 호출을 의미하거나 적어도 다음보다 짧습니다.

MyClass[] myArray = new MyClass[list.Count];
int i = 0;
foreach (MyClass myClass in list)
{
    myArray[i++] = myClass;
}

사용해보십시오

MyClass[] myArray = list.ToArray();

List<int> list = new List<int>();
int[] intList = list.ToArray();

당신의 해결책입니까?


사용 ToArray()List<T>.


list.ToArray()

tric을 할 것입니다. 자세한 내용은 여기참조 하십시오 .


간단히 ToArray()확장 방법을 사용할 수 있습니다.

예:

Person p1 = new Person() { Name = "Person 1", Age = 27 };
Person p2 = new Person() { Name = "Person 2", Age = 31 };

List<Person> people = new List<Person> { p1, p2 };

var array = people.ToArray();

문서에 따르면

요소는 Array.Copy()O (n) 연산 인를 사용하여 복사됩니다 . 여기서 n은 개수입니다.


다중 프로세서 코어를 사용하여 두 배 빠르게 진행하려면 HPCsharp nuget 패키지가 제공하는 :

list.ToArrayPar();

피해야 할 한 가지 가능한 솔루션은 다중 CPU 코어를 사용하고 더 빠르게 진행될 것으로 예상되지만 약 5 배 더 느립니다.

list.AsParallel().ToArray();

참고 URL : https://stackoverflow.com/questions/629178/conversion-from-listt-to-array-t

반응형