2011-01-21 195 views
1

因此,我正在研究生成基於整數數組的唯一密鑰並且可以存儲在數據庫列中的方法高效高效密鑰生成類

在C的舊時代,我可以創建數組的內存位置的副本並將其作爲字符串返回,然後將其作爲我的密鑰。我不知道是否仍然可以在C#中執行此操作,但我正在尋找(幾乎)與此相同的方法。有什麼建議麼?

感謝, 凱末爾

UPDATE: 我的意思是,結果應該取決於輸入數組中的元素是唯一的。所以,這裏的GUID建議不適用。正如Jon Benedicto所建議的,一個明顯的解決方案是將數組元素的文本版本連接成一個字符串。我所看到的是執行效率非常高的東西。我自己想出下面的代碼尋找到不安全的代碼段中的C#語言參考後:

public static string BuildKey(int[ ] src) { 
     string res; 
     unsafe { 
      fixed(int* fxsrc = src) { 
       res = new string((char*)fxsrc, 0, src.Length*2); 
      } 
     } 
     return res; 
    }  

是否有與該代碼的任何問題?

+0

你會像主鍵一樣在數據庫列中使用它嗎? – 2011-01-21 14:28:11

+0

數組索引有什麼問題? – Lazarus 2011-01-21 14:28:27

回答

1

如果你有在C#中的整數數組,你要轉換,你可以使用Array類的ConvertAll靜態泛型方法的整數轉換爲字符串表示:

int[] data = { 0, 1, 2, 3, 4, 5, 6 }; 

string value = String.Join(",", Array.ConvertAll<int, string>(data, x => x.ToString()));