Содержимое переменой в список C#

Discussion in 'Вопросы и обсуждение' started by ibred, Mar 28, 2016.

  1. ibred

    ibred Administrator

    Joined:
    Apr 4, 2015
    Messages:
    2,293
    Likes Received:
    1,720
    Как положить содержимое переменой в список через c#?
    Если использовать list.Add(), то в список попадает только первая строка.
     
  2. Lexicon

    Lexicon Client

    Joined:
    Dec 27, 2012
    Messages:
    1,775
    Likes Received:
    810
    что то вы не то делаете...
    а чем вас кубик не устраивает?
    кубики - отличная возможность познакомиться с алгоритмами и получить представление о том как вся эта хрень работает
     
  3. Dimionix

    Dimionix Moderator

    Joined:
    Apr 9, 2011
    Messages:
    3,079
    Likes Received:
    2,597
    Code (csharp):
    1. var list = project.Lists["List"];
    2. string text = project.Variables["Text"].Value;
    3. list.Add(text);
     
  4. ibred

    ibred Administrator

    Joined:
    Apr 4, 2015
    Messages:
    2,293
    Likes Received:
    1,720
    Да я уже ознакомлен с алгоритмами ZennoPoster :-) Потихоньку переписываю большие группы экшенов на С# (осваиваюсь) и, собственно, встала задача добавить содержимое переменой в список.
    Добавил в переменную Text текст:
    Выполнил кубик и в список List добавилась только 1 строка: Строка1
    Разделитель в списке указан Enter
    sssss.png
     
  5. Dimionix

    Dimionix Moderator

    Joined:
    Apr 9, 2011
    Messages:
    3,079
    Likes Received:
    2,597
    Всё прекрасно добавляется! Что-то не так делаете, видимо.
    Ну попробуйте еще так:
    Code (text):
    1. var list = project.Lists["List"];
    2. string text = project.Variables["Text"].Value;
    3. list.Add(text.ToString());
    Хотя по сути, это одно и то же.
     
  6. CSS

    CSS Client

    Joined:
    May 22, 2010
    Messages:
    1,330
    Likes Received:
    618
    Вы так код для читабельно делаете? В таких случаях мне по душе всех посредников отправить за борт:
    Code (text):
    1. project.Lists["List"].Add(project.Variables["Text"].Value);
     
  7. Dimionix

    Dimionix Moderator

    Joined:
    Apr 9, 2011
    Messages:
    3,079
    Likes Received:
    2,597
    Не только для читабельности, еще, на мой взгляд, так эстетичнее))
    Ну и ладно тут код в одну строку, а когда много, то с внутренними переменными гораздо удобнее и короче.

    PS. Можно на "ты":-)
     
    CSS likes this.
  8. Lexicon

    Lexicon Client

    Joined:
    Dec 27, 2012
    Messages:
    1,775
    Likes Received:
    810
    Ну вообще читабельность кода это довольно важно)) особенно в нашей песочнице)
    А косяк в том что у вас в одной переменной два слова разделенных символом переноса строки, но для шарпа это просто одна строка, в которой один из символов это перенос строки.
    Надо сплитать входную строку по '\n' и получившуюся коллекцию по одному элементу класть в список
     
  9. ibred

    ibred Administrator

    Joined:
    Apr 4, 2015
    Messages:
    2,293
    Likes Received:
    1,720
    В цикле?
     
  10. ibred

    ibred Administrator

    Joined:
    Apr 4, 2015
    Messages:
    2,293
    Likes Received:
    1,720
    Результат тот же, кладет только 1 строку.
    Попробовал следующее: положил в переменную Text текст: Строка1;Строка2
    В свойствах списка указал разделитель ; и запустил кубик C#. В итоге в списке так же оказалась одна строка, но уже: Строка1;Строка2
    То есть ZP почему-то не воспринимает разделитель.

    Можно ли его (разделитель) указать как-то явно в C# кубике?
    У меня версия 5.4.3.0, возможно это баг старой версии, раз работают предложенные вами варианты
     
  11. Lexicon

    Lexicon Client

    Joined:
    Dec 27, 2012
    Messages:
    1,775
    Likes Received:
    810
    Почитайте лучше какой нибудь учебник по шарпу) Это решит 95% вопросов)
    https://s.mail.ru/EgMB/qic8UPVnU
     
    sentinel, LmPopo, samsonnn and 2 others like this.
  12. rostonix

    rostonix Administrator Staff Member

    Joined:
    Dec 23, 2011
    Messages:
    29,050
    Likes Received:
    5,581
    Ваш код и должен записывать одну строку.
    Сам метод Lists.Add добавляет строку в список
    спасибо Lexicon за пример
     
    Lexicon and ibred like this.
  13. ibred

    ibred Administrator

    Joined:
    Apr 4, 2015
    Messages:
    2,293
    Likes Received:
    1,720
    Да я вот потихоньку и учусь :-) Спасибо огромное!
    Так мне Dimionix и CSS скинули такой же код, я уж думал, может и правда что-то не так делаю.
     
  14. rostonix

    rostonix Administrator Staff Member

    Joined:
    Dec 23, 2011
    Messages:
    29,050
    Likes Received:
    5,581
    Вам правильно ответили) Никто не знал что вам это нужно по строкам списка распределять я думаю)
     
  15. ibred

    ibred Administrator

    Joined:
    Apr 4, 2015
    Messages:
    2,293
    Likes Received:
    1,720
    Так в сообщении написано, что в список попадает только первая строка. Это уже подразумевает, что мне нужно все содержимое переменной перекинуть туда.
    Ну да ладно, вопрос решен уже в любом случае. Всем спасибо :-)
     
  16. steklarul

    steklarul Client

    Joined:
    Sep 7, 2016
    Messages:
    152
    Likes Received:
    5
    Всем Привет скажыте пожалуйста как в этот код добавит разделитель enter по умолчанию стоит разделитель пробел

    var list = project.Lists["List"];
    string text = project.Variables["Text"].Value;
    list.Add(text);
     
  17. Sorrow

    Sorrow Новичок

    Joined:
    Jan 2, 2019
    Messages:
    25
    Likes Received:
    2
    Так как, все таки, добавить посредством C# многострочную переменную вида
    Текст1
    Текст2
    Текст3
    ..........
    в список, что бы в список попала не одна строка, а все строки, построчно?
    Стандартными кубиками там все понятно, а хотелось бы именно кодом C#
     
  18. woober

    woober Client

    Joined:
    Apr 7, 2015
    Messages:
    183
    Likes Received:
    85
    Что-то вроде этого
    var temp_list = project.Lists["temp_list" ];
    string[] lines = project.Variables["TEXT"].Value.Split(
    new[] { Environment.NewLine },
    StringSplitOptions.None
    );
    temp_list.AddRange(lines);
     

Пользователи просматривающие тему (Пользователей: 0, Гостей: 0)