Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để làm phẳng danh sách bằng LINQ C #?

Làm phẳng danh sách có nghĩa là chuyển đổi một Danh sách > thành Danh sách . Ví dụ:hãy để chúng tôi xem xét một Danh sách > cần được chuyển đổi thành Danh sách .

SelectMany trong LINQ được sử dụng để chiếu từng phần tử của một chuỗi lên một số và sau đó san phẳng các chuỗi kết quả thành một chuỗi. Điều đó có nghĩa là toán tử SelectMany kết hợp các bản ghi từ một chuỗi kết quả và sau đó chuyển nó thành một kết quả.

Sử dụng SelectMany

Ví dụ

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();
      }
   }
}

Đầu ra

Numbers in the list:
1
2
3
4

Sử dụng truy vấn

Ví dụ

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();
      }
   }
}

Đầu ra

Numbers in the list:
1
2
3
4