所以,我正在研究高效生成基于整数数组的唯一键的方法,并且可以存储在数据库列中。
在C的旧时代,我可以创建一个数组内存位置的副本,并将其作为字符串返回,然后将其作为我的密钥。我不知道C#中是否还能做到这一点,但我看起来(几乎)和这个一样高效。有什么建议吗?
谢谢, 末尔
更新: 我的意思是结果应该是唯一的,具体取决于输入数组的元素。因此,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 :(得分:3)
var pk = Guid.NewGuid();
// Or if you need it as a string
var pkAsString = pk.ToString();
答案 1 :(得分: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()));