在此答案中,发布了以下代码,用于创建唯一的随机字母数字字符串.有人可以向我澄清他们在这段代码中是如何确保它们的独特性以及它们在多大程度上是独一无二的?如果我在不同的场合重新运行这种方法,我还会得到独特的字符串吗?
或者我只是误解了答案,这些根本没有生成唯一的密钥,只是随机的?
我已经在对该答案的评论中询问了这一点,但用户似乎处于非活动状态.
public static string GetUniqueKey()
{
int maxSize = 8;
char[] chars = new char[62];
string a;
a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
chars = a.ToCharArray();
int size = maxSize;
byte[] data = new byte[1];
RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
crypto.GetNonZeroBytes(data);
size = maxSize;
data = new byte[size];
crypto.GetNonZeroBytes(data);
StringBuilder result = new StringBuilder(size);
foreach (byte b in data)
{ result.Append(chars[b % (chars.Length - 1)]); }
return result.ToString();
}
Run Code Online (Sandbox Code Playgroud) 您好我想知道是否有更简洁的方法来编写下面的异步代码.基本上我想等待所有任务,但其中一个任务是可选的.感觉不必要的复杂的,想如果我能做到这一点通过一些回调,但一直没能弄明白.
var mobile = true;
var task1 = _service.Async1();
var tasks = new List<Task>
{
task1
};
Task<int> task2 = null;
if (!mobile)
{
task2 = _service.Async2();
tasks.Add(task2);
}
await Task.WhenAll(tasks);
var result1 = task1.Result;
if (!mobile)
{
result2 = task2.Result;
// Do stuff
}
Run Code Online (Sandbox Code Playgroud) 我在SQL Server 2012上有一个数据库,并且我遇到一些问题,一些表在一段时间后变得很慢,而且有助于重建索引.我想知道是否有人对其中任何一个可能出错的人提出建议,我将在下面发布他们的结构和索引.我自己没有构建这个结构,但可以完全修改.
表格1
索引:
表2
索引:
表3
索引:
c# ×2
.net ×1
asynchronous ×1
cryptography ×1
random ×1
sql ×1
sql-server ×1
task ×1
unique ×1