public ActionResult Test()
{
string str = "1234567890ABCDEF"; //$str='1234567890ABCDEF';
// Длина кода без учета разделителей
int code_length; //$code_length=$_GET['lenght'];
int.TryParse(Request.Params["lenght"], out code_length);
// Нужное количество кодов
int codes_count; //$codes_count=$_GET['count'];
int.TryParse(Request.Params["count"], out codes_count);
// Позиции разделителя (0 - не надо)
byte code_separartor = 0; //$code_separartor=0;
ViewDataDictionary tmp = new ViewDataDictionary(); //$tmp=array();
int str_length = str.Length - 1; //$str_length=strlen($str)-1;
Random random = new Random();
// Цикл до заполнения массива
while (tmp.Count < codes_count) //while (count($tmp)<$codes_count) {
{
// Сгенерировать индекс массива
string code = ""; //$code='';
for (int i = 0; i < code_length; i++) // for ($i=0; $i<$code_length; $i++){
{
// Разделитель можно не добавлять
if (i > 0 && code_separartor > 0 && i % code_separartor == 0) //if ($i>0 && $code_separartor>0 && $i%$code_separartor==0) { $code.='-';}
{
code +='-';
}
code += str.Substring(random.Next(0, str_length), 1); //$code.=substr($str, mt_rand(0,$str_length), 1);
} // }
// Или в массив добавится новый элемент, или
// перепишется поверх уже имеющийся
tmp[code] = 1; //$tmp[$code]=1;
} // }
// Теперь в массиве $codes уникальные коды
var codes = tmp.Keys; //$codes=array_keys($tmp);
return Content("");
}