Как получить из списка 20 первых строк сразу в переменную? C# ?

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
Как получить из списка 20 первых строк сразу в переменную? Если список содержит меньше чем 20 Строк то нужно брать все. Допустим список содержит 19 срок, берем 19. Если список содержит 1 строку, берем 1. Eсли 20 то берем 20. Если 500 то берем 20.
 

alex8020

Client
Регистрация
16.08.2016
Сообщения
37
Благодарностей
39
Баллы
18
C#:
var list = File.ReadAllLines(project.Directory + @"\list.txt").ToList(); // Берем список list.txt в директории проекта
if(list.Count < 1) throw new Exception("Список list.txt пустой"); // Выходим по ошибке, если список пустой
int a = 20; // Задаем нужное кол-во строк
if(list.Count < 20) a = list.Count; // Кол-во строк, если в списке меньше заданного
for(int i = 0; i < a; i++)
{
    project.Variables["test"].Value += list[i] + Environment.NewLine; // Добавляем строки в переменную test
}
project.Variables["test"].Value = project.Variables["test"].Value.Trim(); // Обрезаем последний перенос строки
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Как получить из списка 20 первых строк сразу в переменную? Если список содержит меньше чем 20 Строк то нужно брать все. Допустим список содержит 19 срок, берем 19. Если список содержит 1 строку, берем 1. Eсли 20 то берем 20. Если 500 то берем 20.
C#:
var inputList = project.Lists["inputList"];//список строк
int c = inputList.Count;
project.Variables["stringRange"].Value = string.Join(Environment.NewLine,inputList.ToList().GetRange(0,(c>=20)?20:c));
inputList - название списка.
Нужно создать переменную stringRange - туда вернет результат.
В коде есть число 20 в двух местах, его можно заменить на другое нужное число
 
  • Спасибо
Реакции: Devostator и Vvafel

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
Oгромное спасибо alex8020 и SergSh. Я не поленился и проверил оба кода. Оба кода работают :-)

Отдельное спасибо SergSh. Hесмотря что код уже дали написал свой вариант :ay:.
 

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
C#:
var inputList = project.Lists["inputList"];//список строк
int c = inputList.Count;
project.Variables["stringRange"].Value = string.Join(Environment.NewLine,inputList.ToList().GetRange(0,(c>=20)?20:c));
inputList - название списка.
Нужно создать переменную stringRange - туда вернет результат.
В коде есть число 20 в двух местах, его можно заменить на другое нужное число
Можно ли дописать к году чтобы строки удалялись при взятие строк?
 

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
C#:
var list = File.ReadAllLines(project.Directory + @"\list.txt").ToList(); // Берем список list.txt в директории проекта
if(list.Count < 1) throw new Exception("Список list.txt пустой"); // Выходим по ошибке, если список пустой
int a = 20; // Задаем нужное кол-во строк
if(list.Count < 20) a = list.Count; // Кол-во строк, если в списке меньше заданного
for(int i = 0; i < a; i++)
{
    project.Variables["test"].Value += list[i] + Environment.NewLine; // Добавляем строки в переменную test
}
project.Variables["test"].Value = project.Variables["test"].Value.Trim(); // Обрезаем последний перенос строки
Можно ли дописать к году чтобы строки удалялись при взятие строк?
 

alex8020

Client
Регистрация
16.08.2016
Сообщения
37
Благодарностей
39
Баллы
18
Можно ли дописать к году чтобы строки удалялись при взятие строк?
C#:
var list = File.ReadAllLines(project.Directory + @"\list.txt").ToList(); // Берем список list.txt в директории проекта
if(list.Count < 1) throw new Exception("Список list.txt пустой"); // Выходим по ошибке, если список пустой
int a = 20; // Задаем нужное кол-во строк
if(list.Count < 20) a = list.Count; // Кол-во строк, если в списке меньше заданного
for(int i = 0; i < a; i++)
{
    project.Variables["test"].Value += list[i] + Environment.NewLine; // Добавляем строки в переменную test
}

project.Variables["test"].Value = project.Variables["test"].Value.Trim(); // Обрезаем последний перенос строки
list.RemoveRange(0, a); // Удаляем взятые строки
File.WriteAllLines(project.Directory + @"\list.txt", list); // Перезаписываем список list.txt
 
Последнее редактирование:
  • Спасибо
Реакции: Lextor
Регистрация
05.06.2019
Сообщения
570
Благодарностей
453
Баллы
63
Пример
C#:
project.Lists["inputList"].AddRange(Enumerable.Range(0, 100).Select(x => x.ToString()));
return string.Join(";", project.Lists["inputList"].GetItems("random20"));
Функция

Комментарий
Вот вся реализация, спасибо ZennoLab :bi:
C#:
project.Lists["inputList"].GetItems("random20")
 
  • Спасибо
Реакции: Lextor и SergSh

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Можно ли дописать к году чтобы строки удалялись при взятие строк?
C#:
var inputList = project.Lists["inputList"];
int d = 3;//сколько взять и удалить
int c = inputList.Count;
project.Variables["stringRange"].Value = string.Join(Environment.NewLine,inputList.ToList().GetRange(0,(c>=d)?d:c));
for (int i = d - 1; i >= 0; i--) inputList.RemoveAt(i);
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Можно ли дописать к году чтобы строки удалялись при взятие строк?
C#:
var inputList = project.Lists["inputList"];
int d = 3;//сколько взять и удалить
project.Variables["stringRange"].Value = string.Join(Environment.NewLine,inputList.GetItems("0-"+Convert.ToString(d-1), true));
 
  • Спасибо
Реакции: up_lvl и Lextor

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