Перебор своей коллекции - C#

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

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

Приветствую, ребята, подскажите в чем ошибся, шарп недавно начал изучать. Сейчас обрисую задачу. Есть текстовый файлик с данными с определенной структурой, требуется его распарсить и данные занести в коллекцию для последующей обработки. Вот что сделал я: код обработчика кнопки, по которому загружаю файлик:
//открываем файл для чтения
            if (openFileDialog.ShowDialog() == DialogResult.Cancel)
                return;
            else
            {
                //начинаем обрабатывать файл
                //получаем выбранный файл
                string file_name = openFileDialog.FileName;
                //создаем объект для получения данных
                ReadDataFile parse_data = new ReadDataFile(file_name);
                //обрабатываем файл
                ListComment list_comments = new ListComment();
 
                list_comments = parse_data.GetData();
                
            }
а вот код созданного мною класса ReadDataFile
class ReadDataFile
    {
        //переменная для хранения пути к файлу
        private string path_to_file = "";
 
        //задаем путь до файла
        public ReadDataFile(string PathToFile)
        {
            path_to_file = PathToFile;
        }
        //метод открытия и чтения файла
        public ListComment GetData()
        {
            ListComment Comments = new ListComment();
            //добавляем запись в список комментариев
            //Comments.AddRecord()
            //читаем текстовый файл
            using (StreamReader sr = new StreamReader(path_to_file))
            {
                //переменная для хранения текстовой строки
                string line = "";
                //содержит автора
                string tmp_autor = "";
                //содержит текст коммента
                string tmp_text_comment = "";
                //обходим файл построчно пока не закончится
                while ((line = sr.ReadLine()) != null)
                {                 
                    //если строка содержит автора
                    if (line.Contains("Автор:"))
                    {
                        line = line.Replace("Автор:", "");
                        tmp_autor = line;
                        continue;
                    }
                    if (line.Contains("Коммент:"))
                    {
                        line = line.Replace("Коммент:", "");
                        tmp_text_comment = line;
                        continue;
                    }
                    if (line.Contains("*******************"))
                    {
                        //заносим полученные данные в список
                        Comments.AddRecord(tmp_autor, tmp_text_comment);
                        //очищаем значения полей
                        tmp_autor = "";
                        tmp_text_comment = "";
                    }
                }
            }
 
            return Comments;
        }
    }
    //класс предназначен для хранения списка комментариев
    class ListComment
    {
        List<Comment> data_list_comment;
        //задаем список комментариев
        public ListComment()
        {
            data_list_comment = new List<Comment>();
        }
        //добавление записи в список комментариев
        public void AddRecord(string autor, string text_comment)
        {
            Comment tmp_comment = new Comment();
            tmp_comment.autor = autor;
            tmp_comment.comment = text_comment;
            data_list_comment.Add(tmp_comment);
        }
    }
    //класс комментария, содержит автора и текст комментария
    class Comment
    {
        //поля
        //автор комментария
        private string autor_comment;
        //комментарий
        private string text_comment;
 
        //свойства
        public string autor
        {
            get { return autor_comment; }
            set { autor_comment = value; }
        }
        public string comment
        {
            get { return text_comment; }
            set { text_comment = value; }
        }
 
    }
Вот у меня теперь ступор, как мне обойти коллекцию, которая хранится в list_comments с помощью foreach() ? Понимаю что нужно как-то привести к перечислителю переменную, и потом уже из этой переменной тянуть поля autor и comment, но что-то ступор, пните в нужном направлении пожалуйста Походу нужно как-то работать с индексаторами. Сейчас покурю

Решение задачи: «Перебор своей коллекции»

textual
Листинг программы
public IEnumerable<Comment> GetData()

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


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

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

12   голосов , оценка 3.75 из 5