是否有一行簡單的linq表達式只是從第一個元素以外的簡單數組中獲取所有內容?獲取除數組中第一個元素以外的所有元素
for (int i = 1; i <= contents.Length - 1; i++)
Message += contents[i];
我只是想看看是否更容易壓縮。
是否有一行簡單的linq表達式只是從第一個元素以外的簡單數組中獲取所有內容?獲取除數組中第一個元素以外的所有元素
for (int i = 1; i <= contents.Length - 1; i++)
Message += contents[i];
我只是想看看是否更容易壓縮。
是,Enumerable.Skip你想要做什麼:
contents.Skip(1)
然而,結果是一個IEnumerable < T>,如果你想獲得一個陣列中使用:
contents.Skip(1).ToArray()
下將相當於您的for
循環:
foreach (var item in contents.Skip(1))
Message += item;
你想要_'var item'_ ?? – Joe 2017-01-31 18:46:28
也可以將'contents' arra y在ArraySegment <>結構的新實例中。在編寫上述答案時,這並不是特別有用,但自從.NET 4.5開始,'ArraySegment <>'實現'IList <>','IReadOnlyList <>'及其基本接口(包括'IEnumerable <>') ,所以你可以將'ArraySegment <>'傳遞給'string.Join'。 – 2017-01-25 08:49:31
儘管我討厭Linq,但我決定我可以容忍這一點,只是因爲它在靜態構造函數中運行,每次啓動應用程序一次,所以性能開銷不存在。 – Krythic 2017-07-23 19:19:19