Тема: помилка: "Specified argument was out of range"

Доброго дня!
не можу вирішити таку помилку.
і не можу вивести кожного другого елемента файлу

int t = File.ReadAllLines(file.FileName).Count(); //довжина файлу
     
                for (int k = 6; k < (t / 2); k++)
                {
                    var desiredText = File.ReadLines(file.FileName).ElementAt(k);
                    richTextBox3.Text += desiredText + "\n";
                    string[] split = desiredText.Split(new Char[] { ' ', ',', ':' });

                    foreach (string s in split)
                    {

                        if (s.Trim() != "")
                        {
                            var temp = s.ElementAt(2 * k - 1);
                            richTextBox2.Text += temp + "\n";
                        }
 
                    }
                    
                }

2

Re: помилка: "Specified argument was out of range"

пошук кожного другого елементу:

 string MyFile = File.ReadAllText(path);
            richTextBox1.Text = MyFile;
          //  int t = File.ReadAllLines(MyFile).Count();
            for (int k = 1; k < 24; k+=2)
            {
                var desiredText = File.ReadLines(path);
                richTextBox3.Text += desiredText.ElementAt(k) + "\n";

            }

3 Востаннє редагувалося koala (30.03.2017 17:11:33)

Re: помилка: "Specified argument was out of range"

А ви спеціально довільну кількість пробілів на початку рядків додаєте, щоб важче було читати?
Читати файл повністю кожного разу, коли вам щось з нього потрібно - це як тягати з бібліотеки додому книжкову шафу, знаходити там потрібне і відносити решту назад. Читайте файл один раз, а потім працюйте зі змінними.
Ну і хто сказав, що s.ElementAt(2 * k - 1) чи desiredText.ElementAt(k) існує? k за кодом менше, ніж t / 2 та 24, відповідно, але чому в s та desiredText має бути стільки елементів?

Подякували: leofun011

4

Re: помилка: "Specified argument was out of range"

kovalchukhalia написав:

Доброго дня!
не можу вирішити таку помилку.
і не можу вивести кожного другого елемента файлу

Якщо не здригатимешь від LINQ то

            Console.Write("{0}",String.Join("\n", 
                System.IO.File.ReadAllLines(@"d:\Філея.txt")
                .Select((v, i) => new { i, v })
                .Where(s2 => s2.i % 2 == 0)
                .Select(q=>q.v)
             ));
            Console.ReadKey();
Подякували: leofun011