簡體   English   中英

C#中清除數組部分或四處移動部分​​的最快方法

[英]Fastest way in c# to clear portions of an array or move portions around

在C#中操作短整數數組的最快方法是什么? 我很想念記憶或記憶和記憶。

我需要清除(設置為0)數組的一部分並四處移動(例如將值移動到不同的索引)

更准確地說:我必須修改大量數組。 有時我必須清除該數組的部分,將它們設置為0。有時,我必須在同一數組內移動數據。 因此,我需要對已經分配的同一數組進行操作

c#的數組已經分配了該類型的默認值,因此memset0通常是無關緊要的。 您將永遠不會在構造上得到“ 骯臟的 ”陣列。

對於復制操作,可以使用Array.Copy進行類型化復制,或者使用Buffer.Blockcopy進行原始字節復制。

這兩個都支持從/復制到同一陣列, 您只需要注意不要提供重疊的索引。

編輯:

為了清除數據,您可以使用Array.Clear

要清除數組的一部分,您可以使用以下方法:

public static void Clear(short[] arr, int start, int len) {
  int end = start + len;
  for (int i = start; i < end; i++) arr[i] = 0;
}

對於復制,可以使用Array.CopyBuffer.BlockCopy方法。 即使源區域和目標區域重疊,它們也可以處理同一陣列中的復制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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