我有以下列表
List<AspNetUser> approverprofiles = db.AspNetUsers.Where(w => w.Subsidary_ID =="04").ToList();
List<AspNetRole> approverusers = db.AspNetRoles.Where(w => w.Name == "Approver").ToList();
approverprofiles
是AspNetUser
LIST,approverusers
是AspNetRole
LIST,如何将这两个列表合并或添加到一个列表中?
答案 0 :(得分:1)
您可以将其序列化为一个类as-
,而不是合并或添加Public Class MergeClass {
public List<AspNetUser> AspNetUsers {get;set;}
public List<AspNetRole> AspNetRoles {get;set;}
}
现在 -
var mergeList= new MergeClass {
AspNetUsers= approverprofiles.ToList(),
AspNetRoles= approverusers.ToList()
}
修改强>
只要将对象添加到现有类中就很简单
Public Class MergeClass {
public List<AspNetUser> AspNetUsers {get;set;}
public List<AspNetRole> AspNetRoles {get;set;}
public string MyObject {get;set;}
}
然后您可以使用它 -
var mergeList= new MergeClass {
AspNetUsers= approverprofiles.ToList(),
AspNetRoles= approverusers.ToList(),
MyObject= "someString"
}
访问属性 -
var aspNetUsersFromMergedList = MergeClass.AspNetUsers.Select(a=>a.Id))
根据你的循环问题,你可以访问像这样的属性
foreach(var approvermail in MergeClass.AspNetUsers.ToList(){
//do something
}
答案 1 :(得分:0)
尝试
approverprofiles = approverprofiles .Concat(approverusers ).ToList();
Concat
会返回IEnumerable<T>
这两个列表放在一起,它不会修改现有列表。此外,由于它返回IEnumerable,如果要将其分配给List<T>,
的变量,则必须在返回的ToList()
上调用IEnumerable<T>
。
或者您可以尝试
approverprofiles.AddRange(approverusers)
答案 2 :(得分:0)
List<AspNetUser> approverprofiles = db.AspNetUsers.Where(w => w.Subsidary_ID =="04").ToList();
List<AspNetRole> approverusers = db.AspNetRoles.Where(w => w.Name == "Approver").ToList();
approverprofiles.AddRange(approverusers);
答案 3 :(得分:0)
使用下面的内置函数将第二个列表添加到第一个列表。
approverprofiles.AddRange(approverusers);