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

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
Привет. Как на С# получить случайную строку с удалением из таблицы содержащую текст(В определенной колонке) и разложить по переменным. Экшен берет первую попавшуюся, нужно случайную.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

ial1408

Client
Регистрация
26.07.2016
Сообщения
194
Благодарностей
18
Баллы
18
Взять случайную и взять содержащую текст это разные действия в кубике. Мне же нужно объединить эти действия.
тут в один метод не получиться надо выстраивать логику.
например берешь сначала все строки содержащие текст, объединяешь через разделитель, кидаешь их во временный список
затем берешь случайную из временного списка и разбиваешь по переменным
далее ищешь эту строку в таблице и удаляешь
Уверен что есть и элегантнее решения
 

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
Взять случайную и взять содержащую текст это разные действия в кубике.
Если кубиками, то возможно через проверку условия.
Взять случайную строку -> Если строка содержит текст (длина строки больше 1), то далее, иначе возвращаемся и берем еще одну случайную строку.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
+- так.
Код:
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

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