簡體   English   中英

C#中的數組遍歷

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM