관심있는 두 속성이있는 기존 개체 모음이 있습니다. 두 속성은 모두 같은 유형입니다. 속성 값으로 구성된 새로운 시퀀스를 만들고 싶습니다.여러 속성 값으로 구성된 시퀀스 만들기
var list = new List<Tuple<string, string>>
{ Tuple.Create("dog", "cat"), Tuple.Create("fish", "frog") };
var result =
list.SelectMany(x => new[] {x.Item1, x.Item2});
foreach (string item in result)
{
Console.WriteLine(item);
}
결과 : 여기에 (내가 튜플 대신 단순 내 사용자 지정 형식을 사용하고) 하나의 방법
dog cat fish frog
이 나에게 내가 원하는 결과를 제공하지만, 더 나은 방식이있다 이것을 달성하십시오 (특히, 배열이나 콜렉션을 만들 필요없이)?
편집 :
이것은 또한 두 번 컬렉션 반복의 비용으로 작동합니다
var result = list.Select(x => x.Item1).Concat(list.Select(x => x.Item2));
"원하는 결과"는 무엇입니까? 들쭉날쭉 한 배열이 있습니까? 익명의 타입 목록 만들기 ... –
명백한 진술을 할 위험이 있으므로'var result = new [] { "dog", "cat", "fish", "frog"};'그러나 if 당신은 튜플의 목록으로 시작해야합니다. –
@jmh_gr - 방금 명확성을 위해 질문을 편집했습니다. 'originalListFirstItem.StringProperty1','originalListFirstItem.StringProperty2','originalListSecondItem.StringProperty1','originalListSecondItem.StringProperty2' 등으로 구성된 IEnumerable을 원합니다. –
TrueWill