Morpheus_God
@Morpheus_God

Как добавить List в List?

Добрый вечер.
Помогите с решением задачи. Возможно она проста, но я пока что не додумался:)
Имеется парочка вот таких моделей.
public class UserModel
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public List<AccountModel> Accounts { get; set; }
    }

    public class AccountModel
    {
        public string AccountType { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
    }

Далее создаю простой класс менеджер, который бы заполнял мне список пользователей.
public class UserManager
    {
        private List<UserModel> _userList;

        public UserManager()
        {
            _userList = new List<UserModel>();
            PopulateList();
        }


        private void PopulateList()
        {
             // Этот список создан для проверки.
            var lst = new List<AccountModel>();
            lst.Add(new AccountModel()
            {
                AccountType = "Yandex",
                Email = "ram@ram.ru",
                Password = "12312312",
            });

            _userList.Add(new UserModel() {

                FirstName = "Jack",
                LastName = "The Sparrow",
                Accounts = new List<AccountModel>().Add(new AccountModel()
                {
                           //А вот здесь сама проблема. Не могу заполнить список.
                })
            });
        }
    }

Проблема следующая. Могу ли я создать список в списке? В чем стоит задача. Есть абстрактный список пользователей.
У каждого пользователя есть определенное количество данных о аккаунтах. Аккаунтов может быть много а пользователь один.
И вообще возможно ли подобное? Что бы у элемента списка мог быть свой еще список.
  • Вопрос задан
  • 2060 просмотров
Решения вопроса 2
Могу ли я создать список в списке?

List<List<int>>
Что бы у элемента списка мог быть свой еще список.

class Foo{
public List<int> Digits = new List<int>();
}
var bar = new List<Foo>();
bar[0].Digits[0] = 5;


_userList.Add(new UserModel() {

FirstName = "Jack",
LastName = "The Sparrow",
Accounts = new List().Add(new AccountModel()
{
//А вот здесь сама проблема. Не могу заполнить список.
})
});

Не надо так. Это нечитабельно.
var user_accounts = new List<AccountModel>();
user_accounts.Add(new AccountModel()
            {
                AccountType = "Yandex",
                Email = "ram@ram.ru",
                Password = "12312312",
            });
user_accounts.Add(new AccountModel()
            {
                AccountType = "Yandex",
                Email = "ram2@ram.ru",
                Password = "12312312",
            });
user_accounts.Add(new AccountModel()
            {
                AccountType = "Yandex",
                Email = "ram3@ram.ru",
                Password = "12312312",
            });
var new_user = new UserModel() {
                FirstName = "Jack",
                LastName = "The Sparrow"}
new_user.Accounts = user_accounts;
_userList.Add(new_user);
Ответ написан
Комментировать
Morpheus_God
@Morpheus_God Автор вопроса
Видимо решилось. Достаточно переписать класс UserModel
public class UserModel
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public List<AccountModel> Accounts { get; set; } = new List<AccountModel>();

    }

И в класс AccountModel добавить конструктор.
public class AccountModel
    {
        public string AccountType { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }

        public AccountModel(string account_type, string email, string password)
        {
            this.AccountType = account_type;
            this.Email = email;
            this.Password = password;
        }
    }

Теперь можно добавлять.
_userList.Add(new UserModel() {

                FirstName = "Jack",
                LastName = "The Sparrow",
                Accounts = new List<AccountModel>()
                {
                    new AccountModel("Yandex","rambler@mail.ru","321312"),
                    new AccountModel("Yandex","rambler@mail.ru","321312"),
                }
            });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы