两个列表的交集添加到 MVC 中的另一个列表
本文关键字:列表 添加 MVC 另一个 两个 | 更新日期: 2023-09-27 18:33:28
>我有以下列表
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
列表,approverusers
是AspNetRole
列表,如何将这两个列表合并或添加到一个列表中?
您可以将其序列化为一个类,而不是合并或添加,因为-
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
}
尝试
approverprofiles = approverprofiles .Concat(approverusers ).ToList();
Concat
返回两个列表放在一起的IEnumerable<T>
,它不会修改任何一个现有列表。此外,由于它返回一个 IEnumerable,如果要将其分配给List<T>,
变量,则必须在返回的IEnumerable<T>
上调用 ToList()
。
或者你可以试试
approverprofiles.AddRange(approverusers)
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);
使用以下内置函数将第二个列表添加到第一个列表。
approverprofiles.AddRange(approverusers);