IT story

새 IEnumerable을 만드는 가장 좋은 방법

hot-time 2020. 8. 29. 12:43
반응형

새 IEnumerable을 만드는 가장 좋은 방법 단일 값에서 시퀀스?


일반적으로 다음과 같이 배열 구문을 사용하여 단일 값에서 시퀀스를 만듭니다.

IEnumerable<string> sequence = new string[] { "abc" };

또는 새 목록을 사용합니다. 누구든지 똑같은 일을 할 수있는 더 표현적인 방법이 있는지 듣고 싶습니다.


귀하의 예제는 빈 시퀀스가 ​​아니라 요소가 하나 인 시퀀스입니다. 빈 문자열 시퀀스를 만들려면 다음을 수행하십시오.

var sequence = Enumerable.Empty<string>();

EDIT OP는 단일 값을 만들려고한다고 분명히했습니다. 그 경우

var sequence = Enumerable.Repeat("abc",1);

나는 당신이 제안한 것을 좋아하지만 배열 유형이 생략되었습니다.

var sequence = new[] { "abc" };

또는 더 짧게,

string[] single = { "abc" };

확장 방법을 만들 것입니다.

public static T[] Yield<T>(this T item)
{
    T[] single = { item };
    return single;
}

또는 더 좋고 더 짧게

public static IEnumerable<T> Yield<T>(this T item)
{
    yield return item;
}

아마도 이것이 정확히 Enumerable.Repeat후드 아래에서하는 일입니다.


또는 그냥 방법을 만듭니다

public static IEnumerable<T> CreateEnumerable<T>(params T[] items)
{
    if(items == null)
        yield break;

    foreach (T mitem in items)
        yield return mitem;
}

또는

public static IEnumerable<T> CreateEnumerable<T>(params T[] items)
{
   return items ?? Enumerable.Empty<T>();
}

사용법 :

IEnumerable<string> items = CreateEnumerable("single");

참고 URL : https://stackoverflow.com/questions/1019737/favorite-way-to-create-an-new-ienumerablet-sequence-from-a-single-value

반응형