Ошибка группировки нескольких групп в один список - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть несколько наборов, и название этих наборов будет случайным, оно не будет последовательным.Передо мной стоит задача сохранить эти наборы в списке

Но сначала я создал класс, в котором будут храниться следующие значения:

 public class Group
 {
     public string Name { get; set; }
     public List<string> Sub { get; set; }
 }

Далее яиметь информацию ниже:

RandomName1:
- line1
- line2
- line3

RandomName4:
- line1
- line2
- line3

RandomName3:
- line1
- line2
- line3

Я уже пытался сделать следующее, чтобы сгруппировать эти элементы выше в класс группы:

string[] lines = File.ReadAllLines("groups.yml",Encoding.Default);
        List<Group> groups = new List<Group>();
        Regex rgGroup = new Regex(@".*?\:");
        for (int i = 0; i < lines.Length; i++)
        {
            string line = lines[i];
            if (rgGroup.IsMatch(line))
            {
                groups.Add(new Group() { Name = line, Sub = new List<string>() });
            }
            else
            {
                 groups.LastOrDefault().Sub.Add(line);                    
            }
        }

Код возвращает мне эту ошибку:

System.NullReferenceException: 'Ссылка на объект не определена для экземпляра объекта.'System.Linq.Enumerable.LastOrDefault (...) возвратил ноль.

.Похоже, я сделал некоторые неточности в коде, почему эта ошибка появляется?Есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 19 сентября 2019

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

 groups.LastOrDefault()?.Sub?.Add(line); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...