반응형
새 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");
반응형
'IT story' 카테고리의 다른 글
AngularJS 오류 : '인수'FirstCtrl '은 함수가 아니므로 정의되지 않았습니다.' (0) | 2020.08.29 |
---|---|
Android : xml 리소스의 정수 (0) | 2020.08.29 |
프로젝트를 닫은 후 Visual Studio에서 시작 페이지를여시겠습니까? (0) | 2020.08.29 |
CSS를 사용하여 이미지 크기를 비례 적으로 변경합니까? (0) | 2020.08.29 |
Web API 2 : 객체 및 해당 하위 객체에서 camelCased 속성 이름과 함께 JSON을 반환하는 방법 (0) | 2020.08.29 |