首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

LINQ 交錯數組攤平為一維數組:SelectMany 一行搞定

     編輯:程式設計綜合問答

原代碼


int[] arr1 = arr[0];
for (int i = 1; i < arr.GetLength(0); i++)
    arr = arr.Concat(arr[i]).ToArray(); // 低效、易錯

標準方案


int[] flat = arr.SelectMany(x => x).ToArray();

原理

  • SelectMany 將序列中的每個子序列展平(Flatten)為單一序列。
  • x => x 表示直接取子數組元素。
  • 延遲執行,內存效率高,代碼極簡。

擴展:保留索引


var flatWithIndex = arr.SelectMany((sub, i) => sub.Select((v, j) => new { Outer = i, Inner = j, Value = v }));

**LINQ 攤平數組首選 SelectMany,拒絕手寫循環。**

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved