创建我自己的唯一ID

时间:2013-05-02 12:33:01

标签: c#

我正在尝试在C#中为我的NoSQL数据库中的每个文档创建一个我自己的唯一ID,但我不太确定我会怎么做?

我的示例UID看起来像这个######.entityType@######.contextName.worldName

哈希是字母数字字符。

4 个答案:

答案 0 :(得分:13)

使用Guid.NewGuid方法。

Guid guid = Guid.NewGuid();
string uniqueID = guid.ToString();

Globally unique identifier - WIKI

  

全球唯一标识符是一个唯一的参考号用作   计算机软件中的标识符。术语GUID通常是指   通用唯一标识符(UUID)的各种实现   标准。

答案 1 :(得分:2)

SnowMaker库善于为您提供特定唯一性范围内的唯一标识符。

答案 2 :(得分:1)

在这里做一些假设,但你可以生成一个GUID,在连字符上拆分guid,在你的用户名中使用guid的各个部分。

使用字符串生成器将其全部连接起来。

以下是一些示例代码(未经测试):

    Guid g = Guid.NewGuid();
    String[] parts = g.ToString().Split('-');

    StringBuilder sb = new StringBuilder();
    sb.Append(parts[0]);
    sb.Append("entityType@");
    sb.Append(parts[1]);
    sb.Append(".contextName.worldName");

    string ID = sb.ToString();

这不是GLOBALLY唯一的,但应该为您的场景提供相当好的唯一性。

要匹配上面的哈希长度,您可以这样做:

        String gString = Guid.NewGuid().ToString().Replace("-","");

        StringBuilder sb = new StringBuilder();
        sb.Append(gString.Substring(0,6));
        sb.Append("entityType@");
        sb.Append(gString.Substring(6,6));
        sb.Append(".contextName.worldName");

        string ID = sb.ToString();
        MessageBox.Show(ID);

答案 3 :(得分:-2)

做这样的事情来创建它:

string characters = "abcdefghi123456";

string result = "";

Random random = new Random();

for(int i = 0; i < 10; i++)
{
     result += characters[random.Next(0, characters.Length - 1)];
}

我们无法保证它会是独一无二的,所以在尝试插入数据库之前,您必须检查数据库中存储的记录,如果这是您所做的事情。重新计划做并小心使用大写和小写,因为这些在数据库中可能看起来相同,例如Abc可能与aBC相同