Задать вопрос
@Nestratov

Можно ли переписать код с PHP на C#?

Доброго времени суток. Помогите, пожалуйста, переписать код php на c#.

//$str='1234567890ABCDEF';
// Длина кода без учета разделителей
$code_length=$_GET['lenght'];
// Нужное количество кодов
$codes_count=$_GET['count'];
// Позиции разделителя (0 - не надо)
$code_separartor=0;
 
$tmp=array();
$str_length=strlen($str)-1;
 
// Цикл до заполнения массива
while (count($tmp)<$codes_count) {
    // Сгенерировать индекс массива
    $code='';
    for ($i=0; $i<$code_length; $i++){
        // Разделитель можно не добавлять
        if ($i>0 && $code_separartor>0 && $i%$code_separartor==0) { $code.='-';}
        $code.=substr($str, mt_rand(0,$str_length), 1);
    }
    // Или в массив добавится новый элемент, или
    // перепишется поверх уже имеющийся
    $tmp[$code]=1;
}
// Теперь в массиве $codes уникальные коды
$codes=array_keys($tmp);
  • Вопрос задан
  • 2894 просмотра
Подписаться 3 Оценить 1 комментарий
Решения вопроса 1
dima_horror
@dima_horror
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("");
        }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы