Реализация Split и Spintax в моём алгоритме через заднее место

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Шаблон работает моментально, но я не могу преодолеть типы данных и отработку через C# код листа со значениями. Темы по поиску не нашёл, поэтому пишу своё.

Алгоритм такой.
1) Из ячейки таблицы со списком тяну каждую строку (Regexoм) и забиваю значения в стак новых переменных. На выходе шаблона у меня новые переменные: key[0]...key[n]
Код:
string variableName = "key"+project.Variables["keysCounter"].Value; //new variable name
string variableValue = project.Variables["newKey"].Value; //new variable value
object obj = project.Variables;
obj.GetType().GetMethod("QuickCreateVariable").Invoke(obj,new Object[]{variableName});
project.Variables[variableName].Value = variableValue;

2) в key[1]-key[n] ищу key[0], совпадения - меняю на пустоту. Получаю в те же переменные (чтобы не захламлять)

3) Сплитом разбиваю каждую переменную в цикле на слова.
Код:
int i = 0;
string chosen = project.Variables["chosenVariable"].Value;
var split = chosen.Split(new [] { " " }, StringSplitOptions.None).ToList();

for ( i = 0; i < split.Count; i++ )
{
    project.Lists["Слова"].Add(split[i]);
}
Результат - список слов. 18 значений.
// стоп-слова и пробелы есть, но это не важно на данном этапе, потом удалю по совпадениям.

Внимание, вопрос:
Все строки (слова из списка Слова) хочу вбить в новую переменную друг за дружкой через разделитель для использования Spintax. Пытался сделать через string.Join, но Лог ругается уже 2 часа. Сетую на типы данных или неверное применение коллекций C#.
Пытался решить циклом через все совпадения и записать их в новую переменную - одной строкой.
Так же пытался применить foreach, но самая частая ошибка -
Компиляция кода Ошибка в действии "CS1061" "'ZennoLab.InterfacesLibrary.ProjectModel.IZennoList' does not contain a definition for 'Value' and no extension method 'Value' accepting a first argument of type 'ZennoLab.InterfacesLibrary.ProjectModel.IZennoList' could be found (are you missing a using directive or an assembly reference?)". [Строка: 0; Cтолбец: 38]

Код:
int i = 0;
int count = project.Lists["Слова"].Count;
string spintax;
string adding;
for ( i = 0; i < count ; i++ )
{
    adding = project.Lists["Слова"].... номер совпадения i
    spintax.Join("|", adding ..... или все совпадения...
}

Памагити пжалста.
 

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Ну наконец-то заработало, теперь нужно разобраться - как сцепить все значения из списка в одну переменную. (Походу я неправильно понимаю .Join).
Код:
int i=0;
var spintax = "";
var item = project.Lists["Слова"];
int count = project.Lists["Слова"].Count;
for ( i = 0 ; i < count ; i++)
{
spintax = string.Join("|",item[i]);
}
return spintax;
 

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Сам с собой пообщался, сам с собой покодил)))
Решение найдено)) Потихонечку добавляются навыки) ура)

Код:
int i=0;
string spintax = "";
var item = project.Lists["Слова"];
int count = project.Lists["Слова"].Count;
for ( i = 0 ; i < count ; i++)
{
    spintax = string.Join("|", item.Skip(0));
}
return spintax;
Тема закрыта
 

ZComand

Client
Регистрация
02.02.2016
Сообщения
57
Благодарностей
63
Баллы
18
Ты в цикле for выполняешь одну и ту же операцию столько раз сколько элементов в списке item. ЗАЧЕМ??? )))
проверь вот такой код и ты удивишся ))
Код:
string spintax = string.Join("|",project.Lists["Слова"]);
return spintax;
А еще пропускаешь НОЛЬ элементов этим кодом item.Skip(0);

Советую поучить C# раз такое сильное желание писать снипеты. ;-)
 
  • Спасибо
Реакции: TwistDanceR

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Ты в цикле for выполняешь одну и ту же операцию столько раз сколько элементов в списке item. ЗАЧЕМ??? )))
проверь вот такой код и ты удивишся ))
Код:
string spintax = string.Join("|",project.Lists["Слова"]);
return spintax;
А еще пропускаешь НОЛЬ элементов этим кодом item.Skip(0);

Советую поучить C# раз такое сильное желание писать снипеты. ;-)
Спасибо) Сейчас попробую и гляну чего куда. Ну, и до того чтобы учить C# - уже не далеко ) Хотя у меня совершенно другое направление, не программистское ни разу - я нахожу это занимательным, интересным и перспективным) Если есть ссылки на уроки - я с радостью.
P.S. дома даже ВижлСтудио поставил, но чё-то мне в ней пока что не приятно )))
 

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