programing

IEnumberable에서 목록으로 변환

starjava 2023. 5. 2. 22:13
반응형

IEnumberable에서 목록으로 변환

에서 변환합니다.IEnumerable<Contact>로.List<Contact>어떻게 해야 하나요?

LINQ를 사용하면 매우 간단하게 이 작업을 수행할 수 있습니다.

이 사용법이 C# 파일의 맨 위에 있는지 확인합니다.

using System.Linq;

그런 다음 확장 방법을 사용합니다.

예:

IEnumerable<int> enumerable = Enumerable.Range(1, 300);
List<int> asList = enumerable.ToList();

일반 노인과 함께 일하는 경우System.Collections.IEnumerable대신에IEnumerable<T>사용할 수 있습니다.enumerable.Cast<object>().ToList()

의 구현을 사용하는 경우System.Collections.IEnumerable당신은 그것을 a로 변환하기 위해 다음과 같이 할 수 있습니다.List다음은 Enumerable을 사용합니다.변환할 주조 방법IEnumerable일반적으로List.

// ArrayList implements IEnumerable interface
ArrayList _provinces = new System.Collections.ArrayList();
_provinces.Add("Western");
_provinces.Add("Eastern");

List<string> provinces = _provinces.Cast<string>().ToList();

일반 버전을 사용하는 경우IEnumerable<T>변환은 바로 진행됩니다.둘 다 제네릭이기 때문에 아래와 같이 할 수 있습니다.

IEnumerable<int> values = Enumerable.Range(1, 10);
List<int> valueList = values.ToList();

하지만 만약에IEnumerablenull입니다. 로 변환하려고 할 때List당신은 받을 것입니다.ArgumentNullException값은 null일 수 없습니다.

IEnumerable<int> values2 = null;
List<int> valueList2 = values2.ToList();

여기에 이미지 설명 입력

그러므로 다른 답변에서 언급한 바와 같이, 다음을 수행하는 것을 기억하십시오.nulla로 변환하기 전에 확인List.

저는 이것을 위해 확장 방법을 사용합니다.내 확장 방법은 먼저 열거형이 null인지 확인하고, 그런 경우 빈 목록을 만듭니다.이렇게 하면 null을 명시적으로 확인할 필요 없이 각 작업을 수행할 수 있습니다.

다음은 매우 고안된 예입니다.

IEnumerable<string> stringEnumerable = null;
StringBuilder csv = new StringBuilder();
stringEnumerable.ToNonNullList().ForEach(str=> csv.Append(str).Append(","));

확장 방법은 다음과 같습니다.

public static List<T> ToNonNullList<T>(this IEnumerable<T> obj)
{
    return obj == null ? new List<T>() : obj.ToList();
}

다른 방법

List<int> list=new List<int>();

IEnumerable<int> enumerable =Enumerable.Range(1, 300);  

foreach (var item in enumerable )  
{     
  list.Add(item);  
}

언급URL : https://stackoverflow.com/questions/7617771/converting-from-ienumerable-to-list

반응형