Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将类添加到字典中的嵌套类?_C#_Asp.net_Lambda_Nested_Ienumerable - Fatal编程技术网

C# 如何将类添加到字典中的嵌套类?

C# 如何将类添加到字典中的嵌套类?,c#,asp.net,lambda,nested,ienumerable,C#,Asp.net,Lambda,Nested,Ienumerable,这是我的字典的结构 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; se

这是我的
字典的结构

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'
}
有更好的方法吗?

var curDepId=“abcDep”;
var curDepId = "abcDep";
 var curUser=new User()
          {
              UserID = "123",
              UserName = "John cena",
              UserTitle = "Champian",
              UserExt = "7777",
              UserIsAt = "Yes"
           };
foreach (var d in dic)
{ 
    var curCompany=d.Value;
    if (curCompany == null || curCompany.Dep==null) continue;
    var depObj = curCompany.Dep.Where(c => c.DepID == curDepId).FirstOrDefault();
    if (depObj != null)
    { 
        if(depObj.User==null)
        {
         depObj.User=new List<User>();
        }
        depObj.User.Add(curUser);
        break;
    }
}
var curUser=新用户() { UserID=“123”, UserName=“John cena”, UserTitle=“Champian”, UserExt=“7777”, UserIsAt=“是” }; foreach(dic中的变量d) { var curCompany=d.值; 如果(curCompany==null | | curCompany.Dep==null)继续; var depObj=curCompany.Dep.Where(c=>c.DepID==curDepId.FirstOrDefault(); if(depObj!=null) { if(depObj.User==null) { depObj.User=新列表(); } depObj.User.Add(curUser); 打破 } }
不确定您需要什么样的帮助。很明显,您希望有时找不到项(因为您使用的是
FirstOrDefault()
),但另一方面,如图所示的代码(对于post示例,可能简化/组合在一行中)不处理项不存在的情况。请确保提供包含
null
处理的完整代码,以便有人能够对您的实际代码提供合理的建议。如果内部集合经常更新,为什么不能使用dictionary instread?像
字典
var curDepId = "abcDep";
 var curUser=new User()
          {
              UserID = "123",
              UserName = "John cena",
              UserTitle = "Champian",
              UserExt = "7777",
              UserIsAt = "Yes"
           };
foreach (var d in dic)
{ 
    var curCompany=d.Value;
    if (curCompany == null || curCompany.Dep==null) continue;
    var depObj = curCompany.Dep.Where(c => c.DepID == curDepId).FirstOrDefault();
    if (depObj != null)
    { 
        if(depObj.User==null)
        {
         depObj.User=new List<User>();
        }
        depObj.User.Add(curUser);
        break;
    }
}