Вернуть несколько значений из метода - C# (179619)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Подскажите есть метод, который считывает из файла данные
 int Shirina(StreamReader sr)
        {
            Regex reg_visota = new Regex(@"\b(\d+\W?шмм)");
 
            while (!sr.EndOfStream)
            {
                string input = sr.ReadLine();
                Match match_shirina = reg_visota.Match(input);
 
                while (match_shirina.Success)
                {

                    string input3 = match_shirina.Groups[1].Value;
                    if (!input3.Contains("вмм"))
                    {
                        char[] mychar2 = { 'ш', 'м', 'м' };
                        string inp_shirina = input3.TrimEnd(mychar2).Trim();
                        inp_shirina_txt = Convert.ToInt32(inp_shirina);
                        inp_shirina_textbox = Convert.ToInt32(txt_shirina.Text);

                        //MessageBox.Show("ширина " + inp_shirina_txt.ToString());

                        match_shirina = match_shirina.NextMatch();
                    }
                }
               //  sr.Close();
 
            }
 
            return inp_shirina_txt;
        }
Но при вызове выдает только последнюю строчку в файле, как вернуть несколько значений сразу же. Вот так вызываю
 Encoding windows1251 = Encoding.GetEncoding("Windows-1251");
           StreamReader sr = new StreamReader(openFileDialog1.FileName, windows1251);
 
                    MessageBox.Show(Visota(sr).ToString());

Решение задачи: «Вернуть несколько значений из метода»

textual
Листинг программы
List<int> Shirina(StreamReader sr)
        {
            List <int> list=new List<int>();
            Regex reg_visota = new Regex(@"\b(\d+\W?шмм)");
 
            while (!sr.EndOfStream)
            {
                string input = sr.ReadLine();
                Match match_shirina = reg_visota.Match(input);
 
                while (match_shirina.Success)
                {
 
 
                    string input3 = match_shirina.Groups[1].Value;
                    if (!input3.Contains("вмм"))
                    {
                        char[] mychar2 = { 'ш', 'м', 'м' };
                        string inp_shirina = input3.TrimEnd(mychar2).Trim();
                        list.add( Convert.ToInt32(inp_shirina));
                        inp_shirina_textbox = Convert.ToInt32(txt_shirina.Text);
 
 
                        //MessageBox.Show("ширина " + inp_shirina_txt.ToString());
 
 
 
                        match_shirina = match_shirina.NextMatch();
                    }
                }
               //  sr.Close();
 
            }
 
            return list;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.636 из 5
Похожие ответы