- Регистрация
- 18.05.2013
- Сообщения
- 138
- Благодарностей
- 15
- Баллы
- 18
Есть сниппет:
Суть. В тексте расставлены макросы str. Их в рандомном порядке нужно заменить рандомное кол-во раз, на рандомные строки из списка (более 50 тыс. строк).
Данный снип вроде справляется с задачей, но только когда нужно сделать не более 5 итераций цикла, если допустим поставить "for (int i = 1; i <= 50; i++)" и более, то получим ошибку: Specified argument was out of the range of valid values.
Parameter name: i
сколько не искал не могу понять суть проблемы, в c# не разбираюсь, данный снип собрал при помощи гугла и кривых рук.
Код:
var list = project.Lists["rand_str"].ToList();
var pattern = "str";
var text = project.Variables["text_spin"].Value;
for (int i = 1; i <= 5; i++)
{
list.Shuffle();
var randomStr0 = string.Join("", list.Take(1).ToArray());
var n = new Random().Next(0,172);
var match = System.Text.RegularExpressions.Regex.Matches(text, pattern)[n];
text = text.Remove(match.Index, match.Length).Insert(match.Index, randomStr0);
}
return text;
Данный снип вроде справляется с задачей, но только когда нужно сделать не более 5 итераций цикла, если допустим поставить "for (int i = 1; i <= 50; i++)" и более, то получим ошибку: Specified argument was out of the range of valid values.
Parameter name: i
сколько не искал не могу понять суть проблемы, в c# не разбираюсь, данный снип собрал при помощи гугла и кривых рук.