C# LINQ Enumerable 方法介紹(Range, Chunk, Repeat, Empty, DefaultIfEmpty)

Range

產生指定範圍的整數序列:
    
var range = Enumerable.Range(2, 5); // 起始數字, 產生數量

Console.WriteLine(string.Join(", ", range));
// 2, 3, 4, 5, 6
    

Chunk

將集合依照指定長度上限分割:
    
var range = Enumerable.Range(1, 10); // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

var chunk = range.Chunk(3); // 拆分為長度上限為 3 的多個集合

foreach (var item in chunk)
{
    Console.WriteLine(string.Join(", ", item));
}

// 1, 2, 3
// 4, 5, 6
// 7, 8, 9
// 10
    

Repeat

產生指定範圍的整數序列:
    
var repeat = Enumerable.Repeat("Hello", 3); // 要重複的內容, 重複次數

Console.WriteLine(string.Join(", ", repeat));
// Hello, Hello, Hello
    

Empty

產生一個空的 IEnumerable<T> 集合,可以避免回傳 null
    
var empty = Enumerable.Empty<int>();
    

DefaultIfEmpty

如果是空集合,就塞入預設值
    
var numbers = new int[] { };

var result = numbers.DefaultIfEmpty(0); // 如果是空集合就塞入 0

Console.WriteLine(string.Join(", ", result));
// 0
    



參考資料:
Microsoft.Learn - Enumerable.Range(Int32, Int32) Method
Microsoft.Learn - Enumerable.Chunk<TSource>(IEnumerable<TSource>, Int32) Method
Microsoft.Learn - Enumerable.Repeat<TResult>(TResult, Int32) Method
Microsoft.Learn - Enumerable.Empty<TResult> Method
Microsoft.Learn - Enumerable.DefaultIfEmpty Method

留言

張貼留言

如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com