Вывод строки перед и после

255
04 января 2018, 20:20

В .txt записана такие строки, к примеру

stroka1
stroka-
stroka2

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

stroka1
stroka2

Возможно что-то будет типа ...EndsWith("-")-1);

Answer 1

Для начала можно попробовать так:

static void Main(string[] args)
{
    string prev = "", current = "", next = "";
    foreach (var s in File.ReadLines("TextFile.txt").Concat(new[] { "" }))
    {
        prev = current;
        current = next;
        next = s;
        if (IsSignal(current))
        {
            Console.WriteLine(prev);
            Console.WriteLine(next);
        }
    }
    Console.ReadLine();
}
static bool IsSignal(string s)
{
    return s.EndsWith("-");
}

PS: Если вы используете .NET 4.7.1 или выше, вместо .Concat(new[] { "" }) можно использовать .Append("")

То же самое с использованием morelinq:

static void Main(string[] args)
{
    foreach (var list
        in File.ReadLines("TextFile.txt")
               .Prepend("")
               .Concat("")
               .Windowed(3)
               .Select(w => w.ToList()))
    {
        if (IsSignal(list[1]))
        {
            Console.WriteLine(list[0]);
            Console.WriteLine(list[2]);
        }
    }
    Console.ReadLine();
}
static bool IsSignal(string s)
{
    return s.EndsWith("-");
}
Answer 2
       var s = File.ReadLines("input.txt").ToList();
        for (int i = 0; i < s.Count; i++)
        {
            if (s[i].EndsWith("-"))
            {
                if (i >= 1)
                {
                    Console.WriteLine(s[i - 1]);
                }
                if(i + 1 < s.Count)
                {
                     Console.WriteLine(s[i + 1]);
                }
                i++;
            }
        }

думаю, тут будет проще и понятнее.

READ ALSO
Проверка поля на наличие в нем определенного числа JS [требует правки]

Проверка поля на наличие в нем определенного числа JS [требует правки]

Мне нужна помощь с написанием скрипта, который будет проверять числовое значение в поле

294
Как обрезать строку в jq? (не работает в ie11)

Как обрезать строку в jq? (не работает в ie11)

Есть функция, отлично работает во всех браузерах кроме ieподскажите что не так

391
Вывести ёлочку в консоли

Вывести ёлочку в консоли

Захотелось попробовать вывести такую же ёлочку как тут, но с помощью javascript

328