Получить первую среднюю и последнюю 10 строку в текстовом поле - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть текст в текстовом поле, и я хочу получить первые 10 средних 10 и последних 10 строк в текстовом поле.

В приведенном ниже примере используется 2, чтобы не давать длинных данных выборки

пример данных

1.2
1.44
1.68
1.44
1.44
1.2
1.68
1.68
1.68
1.68

ожидаемый вывод

1.2
1.44
1.44
1.2
1.68
1.68

Моя попытка.

var source = txtProcessData.Lines;
                    var first = source.Take(2);
                    var last = source.Skip(source.Length - 2);

                    txtProcessData.Text = String.Join(Environment.NewLine, first);

, но есть ошибка:

Ошибка 2 Аргумент 2: невозможно преобразовать 'System.Collections.Generi c .IEnumerable' в 'string []'

Примечание Строки данных всегда будут четными, потому что я есть условие для этого. Я также использую 2 на образце.

Как мне этого добиться?

1 Ответ

1 голос
/ 10 февраля 2020

Вы можете попробовать простое Where:

var source = txtProcessData.Lines;

var result = source
  .Where((value, index) => index <= 1 ||                     // first  2 lines
                           index >= source.Count - 2 ||      // last   2 lines
                           index == source.Count / 2 ||      // middle 2 lines
                           index == source.Count / 2 - 1);

// ToArray() - Early versions C# want string[] for string.Join
txtProcessData.Text = String.Join(Environment.NewLine, result.ToArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...