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;
}
}