Guid довольно быстрый
Guid.NewGuid().ToString("N").Substring(0, 10);
Из MSDN
GUID - это 128-разрядное целое число (16 байт), которое можно использовать длявсе компьютеры и сети, где требуется уникальный идентификатор.Такой идентификатор имеет очень низкую вероятность дублирования.
Он может быть не уникальным для миллиарда запросов, так как вам нужно всего 10 символов.Но он генерирует строку от 0 до 9 и от A до F.
Производительность
Проверено с использованием
public static void Test(Action a)
{
Stopwatch sw = new Stopwatch();
sw.Start();
for (var i = 0; i < 10000; ++i)
a();
sw.Stop();
Console.WriteLine("ms: {0} ticks: {1}", sw.ElapsedMilliseconds, sw.ElapsedTicks);
}
Метод Guid
Test(() =>
{
var xxx = Guid.NewGuid().ToString("N").Substring(0, 10);
});
// Result
// 6 ms
// 17273 ticks
Метод байтов
Test(() =>
{
var buffer = new byte[5];
new Random().NextBytes(buffer);
var x = string.Join("", buffer.Select(b => b.ToString("X2")));
});
// Result:
// 57 ms
// 165642 ticks
Вы можете выбрать между high speed
или high reliability
.