-1
Это sturcture моего Dictionary
Как добавить класс вложенный класс в словаре?
public class Company
{
public string ComID { get; set; }
public string ComName { get; set; }
public List<Dep> Dep { get; set; }
}
public class Dep
{
public string DepID { get; set; }
public string DepName { get; set; }
public string isDepAt { get; set; }
public List<User> User { get; set; }
}
public class User
{
public string UserID { get; set; }
public string UserName { get; set; }
public string UserTitle { get; set; }
public string UserExt { get; set; }
public string UserIsAt { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
Dictionary<int, Company> dic = new Dictionary<int, Company>();
DataTable data=new DataTable();
//get data ...
//Creat User
//Creat Dep and add User to class
//Creat Company and add Dep to class
//Add Company to Dictionary 'dic'
}
После связывания данных, как я мог добавить новый User
в Dictionary
?
Я использую этот путь:
User _user = new User()
{
UserID = "123",
UserName = "John cena",
UserTitle = "Champian",
UserExt = "7777",
UserIsAt = "Yes"
};
dic.Where(x => x.Value.Dep.Select(y => y.DepID == "abcDep").FirstOrDefault()).FirstOrDefault().Value.Dep.Where(z => z.DepID == "abcDep").FirstOrDefault().User.Add(_user);
есть лучший способ сделать это?
Не знаете, какую помощь вы ищите. Ясно, что вы ожидаете, что элементы не будут найдены иногда (поскольку вы используете 'FirstOrDefault()'), но с другой стороны код, как показано (предположительно упрощенное/комбинированное в одной строке для пост-образца), не обрабатывает случаи, когда элемента нет. Обязательно укажите полный код с включенной обработкой «null», чтобы кто-то мог предоставить разумные рекомендации по вашему фактическому коду. –
Если частые обновления внутренней коллекции, почему нельзя использовать словарь instread? например 'Dictionary' –