两个列表的交集添加到 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();

approverprofilesAspNetUser列表,approverusersAspNetRole列表,如何将这两个列表合并或添加到一个列表中?

两个列表的交集添加到 MVC 中的另一个列表

您可以将其序列化为一个类,而不是合并或添加,因为-

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