簡體   English   中英

C#String []到byte [] []

[英]C# String[] to byte[][]

我有一個字符串數組,我需要轉換為byte [] [](將Xcode與C#中的Unity腳本連接)。

這是Xcode中的功能:

void doThisC(char** matrix);

在C#中的Unity中,這就是我所擁有的,但我無法使其工作:

public static void doThis(string[] array, int size){
    char[][] grid = new char[][] { new char[size] , new char[100]}; 
    byte[][] buffer;

   for(int i = 0 ; i < size ; i++)
   {
      grid[i] = array[i].ToString().ToCharArray();
      buffer[i] = (new System.Text.UTF8Encoding()).GetBytes(grid[i]);
   }
   doThisC(buffer);     
}

grid數組只有兩個項目,因此代碼最多只能處理兩個字符串。 您根本不需要grid數組。 另外,您不創建數組buffer

public static void doThis(string[] array){
   byte[][] buffer = new byte[array.Length][];
   for(int i = 0 ; i < array.Length ; i++)
   {
      buffer[i] = System.Text.Encoding.UTF8.GetBytes(array[i]);
   }
   doThisC(buffer);     
}

或使用Linq擴展方法:

public static void doThis(string[] array){
   byte[][] buffer = array.Select(System.Text.Encoding.UTF8.GetBytes).ToArray();
   doThisC(buffer);     
}

我認為您的問題僅在於數組創建,您應該首先正確創建一個字節數組:

byte[][] buffer = new byte[size][];

在當前的實現中,當您調用buffer[i]您將獲得一個異常,但是如上所述,您只需對其進行少量更改即可對其進行修復。 您代碼的其他部分(取決於您的編碼),似乎是正確的。

暫無
暫無

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

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