2011-01-21 199 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()));