- Регистрация
 - 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# не разбираюсь, данный снип собрал при помощи гугла и кривых рук.




