program story

IEnumerable 초기화

inputbox 2020. 8. 14. 07:42
반응형

IEnumerable 초기화 C #에서


이 개체가 있습니다.

IEnumerable<string> m_oEnum = null;

초기화하고 싶습니다. 시도

IEnumerable<string> m_oEnum = new IEnumerable<string>() { "1", "2", "3"};

하지만 "IEnumerable에는 문자열을 추가하는 방법이 없습니다. 아이디어가 있습니까? 감사합니다.


좋아, 답변에 추가 당신이 할 수있는 언급 찾고

IEnumerable<string> m_oEnum = Enumerable.Empty<string>();

또는

IEnumerable<string> m_oEnum = new string[]{};

IEnumerable<T>인터페이스입니다. 구체적인 유형 (을 구현 IEnumerable<T>) 으로 시작해야합니다 . 예:

IEnumerable<string> m_oEnum = new List<string>() { "1", "2", "3"};

string[]구현는 IEnumerable

IEnumerable<string> m_oEnum = new string[] {"1","2","3"}

IEnumerable 인터페이스 일 뿐이므로 직접 인스턴스화 할 수 없습니다.

당신의 (a 콘크리트와 같은 클래스를 작성해야합니다 List)

IEnumerable<string> m_oEnum = new List<string>() { "1", "2", "3" };

그런 다음 이것을 기대하는 모든 것에 전달할 수 있습니다 IEnumerable.


public static IEnumerable<string> GetData()
{
    yield return "1";
    yield return "2";
    yield return "3";
}

IEnumerable<string> m_oEnum = GetData();

인터페이스를 인스턴스화 할 수 없습니다. IEnumerable의 구체적인 구현을 제공해야합니다.


다음과 같이 원하는 IEnumerable을 반환하는 정적 메서드를 만들 수 있습니다.

public static IEnumerable<T> CreateEnumerable<T>(params T[] values) =>
    return values.AsEnumerable();
//And then use it
IEnumerable<string> myStrings = CreateEnumerable("first item", "second item");//etc..

또는 다음을 수행하십시오.

IEnumerable<string> myStrings = new []{ "first item", "second item"};

참고 URL : https://stackoverflow.com/questions/6573069/initializing-ienumerablestring-in-c-sharp

반응형