Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

LINQ C#을 사용하여 목록을 병합하는 방법은 무엇입니까?

<시간/>

목록을 병합한다는 것은 List>를 List로 변환하는 것을 의미합니다. 예를 들어 List로 변환해야 하는 List>를 생각해 보겠습니다.

LINQ의 SelectMany는 시퀀스의 각 요소를 IEnumerable에 투영한 다음 결과 시퀀스를 하나의 시퀀스로 병합하는 데 사용됩니다. 즉, SelectMany 연산자는 결과 시퀀스의 레코드를 결합한 다음 하나의 결과로 변환합니다.

SelectMany 사용

예시

using System;
using System.Collections.Generic;
using System.Linq;
namespace DemoApplication{
   public class Program{
      static void Main(string[] args){
         List<List<int>> listOfNumLists = new List<List<int>>{
            new List<int>{
               1, 2
            },
            new List<int>{
               3, 4
            }
         };
         var numList = listOfNumLists.SelectMany(i => i);
         Console.WriteLine("Numbers in the list:");
         foreach(var num in numList){
            Console.WriteLine(num);
         }
         Console.ReadLine();
      }
   }
}

출력

Numbers in the list:
1
2
3
4

쿼리 사용

예시

using System;
using System.Collections.Generic;
using System.Linq;
namespace DemoApplication{
   public class Program{
      static void Main(string[] args){
         List<List<int>> listOfNumLists = new List<List<int>>{
            new List<int>{
               1, 2
            },
            new List<int>{
               3, 4
            }
         };
         var numList = from listOfNumList in listOfNumLists
         from value in listOfNumList
         select value;
         Console.WriteLine("Numbers in the list:");
         foreach(var num in numList){
            Console.WriteLine(num);
         }
         Console.ReadLine();
      }
   }
}

출력

Numbers in the list:
1
2
3
4