SelectMany()

nana·2024년 12월 19일

C# 정리

목록 보기
4/10

LINQ 메서드 중 하나로, 컬렉션(시퀀스) 내부에 있는 하위 컬렉션을 펼쳐서(flatten) 단일 컬렉션으로 만드는 데 사용

주요 특징

다차원 데이터(컬렉션 내부의 컬렉션)를 1차원 데이터로 변환합니다.
각 요소를 매핑하여 새로운 컬렉션을 반환하지만, 하위 컬렉션의 모든 요소를 하나의 컬렉션으로 병합합니다.

var words = new List<string> { "hello", "world" };

// 각 문자열을 문자로 분리하고, 전체를 하나의 시퀀스로 만듦
var characters = words.SelectMany(word => word.ToCharArray());

Console.WriteLine(string.Join(", ", characters));
//출력값 : h, e, l, l, o, w, o, r, l, d
var dictionary = new Dictionary<string, int[]> {
    {"A", new[] {1, 2}},
    {"B", new[] {3, 4}},
    {"C", new[] {5}}
};

// Key와 Value를 펼쳐 하나의 튜플 시퀀스로 생성
var pairs = dictionary.SelectMany(kvp => kvp.Value.Select(v => (kvp.Key, v)));

foreach (var pair in pairs)
{
    Console.WriteLine($"Key: {pair.Key}, Value: {pair.v}");
}
/*   출력값 
Key: A, Value: 1
Key: A, Value: 2
Key: B, Value: 3
Key: B, Value: 4
Key: C, Value: 5 */

지리는 메서드

0개의 댓글