С# получить случайную строку содержащую текст

  • Автор темы Автор темы Kirillzenp
  • Дата начала Дата начала

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Реакции
1
Баллы
18
Привет. Как на С# получить случайную строку с удалением из таблицы содержащую текст(В определенной колонке) и разложить по переменным. Экшен берет первую попавшуюся, нужно случайную.
 
Взять случайную и взять содержащую текст это разные действия в кубике. Мне же нужно объединить эти действия.
тут в один метод не получиться надо выстраивать логику.
например берешь сначала все строки содержащие текст, объединяешь через разделитель, кидаешь их во временный список
затем берешь случайную из временного списка и разбиваешь по переменным
далее ищешь эту строку в таблице и удаляешь
Уверен что есть и элегантнее решения
 
Взять случайную и взять содержащую текст это разные действия в кубике.
Если кубиками, то возможно через проверку условия.
Взять случайную строку -> Если строка содержит текст (длина строки больше 1), то далее, иначе возвращаемся и берем еще одну случайную строку.
 
+- так.
Код:
Развернуть Свернуть Копировать
Random rand = new Random();//переменная для рандома
string text = "3";//переменная с значением по которому ищем
int rand_row;//переменная для рандома строки
int count_row = project.Tables["Таблица 1"].RowCount;//количество строк в таблице

do{
    rand_row = rand.Next(0, count_row);//рандомим строку
    if (project.Tables["Таблица 1"].GetCell("C", rand_row).Contains(text)){//С - это колонка по которой ищем
        project.Variables["column_1"].Value = project.Tables["Таблица 1"].GetCell("A", rand_row);//записываем в переменную ZP для первого столбца
        project.Variables["column_2"].Value = project.Tables["Таблица 1"].GetCell("B", rand_row);//записываем в переменную ZP для второго столбца
        project.Variables["column_3"].Value = project.Tables["Таблица 1"].GetCell("C", rand_row);//записываем в переменную ZP для третьего столбца
        project.Variables["column_4"].Value = project.Tables["Таблица 1"].GetCell("D", rand_row);//записываем в переменную ZP для четвертого столбца
        project.Tables["Таблица 1"].DeleteRow(rand_row);//удаляем строку из таблицы
        break;
    }
    else{
        continue;
    }
}
while (rand_row != 12312);
 
  • Оценить
Реакции: borzd и Kirillzenp

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)