Mega Code Archive

 
Categories / C# / Language Basics
 

Use unsafe method to clone array

public struct MyValue {     public int id;     public MyValue(int id) { this.id = id; } } class ClassAddressApp {     unsafe public static MyValue[] CloneMyValues(MyValue[] box)     {         MyValue[] ret = new MyValue[box.Length];         fixed (MyValue* src = box, dest = ret)         {             MyValue* pSrc = src;             MyValue* pDest = dest;             for (int index = 0; index < box.Length; index++)             {                 *pDest = *pSrc;                 pSrc++;                 pDest++;             }         }         return ret;     }         static void Main(string[] args)     {         MyValue[] box = new MyValue[2];         box[0] =  new MyValue(1);         box[1] = new MyValue(2);             MyValue[] bag = CloneMyValues(box);         foreach (MyValue i in bag)         {             Console.WriteLine(i.id);         }     } }