[英]Array Traversal in C#
我的問題是,在C#中是否有一種遍歷Python之類的數組的方法。
例如在Python中
arr = [1 , 2, 3 , 4, 5]
print (arr[3:])
arr[3:] = [7, 8]
print (arr[3:])
給我輸出[4,5],然后是[7,8]。
我想知道C#中是否也存在某種東西。 我瀏覽了MSDN Microsoft和其他鏈接上的大多數文檔,但發現了傳統的for循環和for每個循環。 我也許希望我錯過了它,但有人找到我正在尋找的答案,因為我自己找不到。
沒有...
print (arr[3:])
在C#中,沒有簡短的表示法來獲取數組的子集。
arr[3:] = [7, 8]
而且沒有簡短的表示法將一個數組的一部分替換為另一個數組(或將一個數組復制到另一個數組)
可以使用ArraySegment <T>類在數組的子集上創建視圖,也可以使用LINQ Skip() / Take()進行相同的操作。 仍然沒有簡短的注釋,也沒有復制/替換。
您可以使用功能性方法來做類似的事情
var arr = new int[]{1 , 2, 3 , 4, 5};
var arr2 = arr.Skip (2).ToArray ();
var arr3 = arr.Take (3).Concat(new int[]{7,8}).ToArray ();
Console.WriteLine (String.Join(",",arr));
Console.WriteLine (String.Join(",",arr2));
Console.WriteLine (String.Join(",",arr3));
輸出
1,2,3,4,5
3,4,5
1,2,3,7,8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.