Instead of merging or adding, you can serialize it into one class as-
Public Class MergeClass {
public List<AspNetUser> AspNetUsers {get;set;}
public List<AspNetRole> AspNetRoles {get;set;}
}
Now-
var mergeList= new MergeClass {
AspNetUsers= approverprofiles.ToList(),
AspNetRoles= approverusers.ToList()
}
Edit
As far as adding an object to the existing class is simple
Public Class MergeClass {
public List<AspNetUser> AspNetUsers {get;set;}
public List<AspNetRole> AspNetRoles {get;set;}
public string MyObject {get;set;}
}
You can then use it-
var mergeList= new MergeClass {
AspNetUsers= approverprofiles.ToList(),
AspNetRoles= approverusers.ToList(),
MyObject= "someString"
}
Accessing the properties-
var aspNetUsersFromMergedList = MergeClass.AspNetUsers.Select(a=>a.Id))
As per you problem with loop , you can access a property like this-
foreach(var approvermail in MergeClass.AspNetUsers.ToList(){
//do something
}