如何基于相似的属性合并两个列表。假设我有列表A和列表B。列表A具有Name属性,列表B具有Name属性。如果列表A的名称与列表B的Name属性匹配。则将该对象保存在新列表中。如何针对用户将要提供的许多列表执行此操作。因此,如果用户提供了五个列表。我想获得属性名称匹配的所有对象的对象。我可以使用groupby对两个列表进行处理,但是如何对几个列表进行处理呢?
class Customer
{
public int ID {get; set;}
public string description {get; set;}
}
List<Customer> AllCustomer;
var lst = new List<Hotel>();
foreach (var item in AllCustomer)
{
var lst = CustomrBO.FetchSales(item);
}
如果酒店的HotelRegistration属性与每个客户匹配,如何获取酒店的对象列表?
var resultSet = source.GroupBy(x => x.Name)
.Where(g => g.Count() > 1)
.SelectMany(x => x);
答案 0 :(得分:0)
好吧,为什么不使用List<T>.AddRange()
方法加入用户提供的所有5个列表,并使用当前遵循的相同过程
答案 1 :(得分:0)
X
答案 2 :(得分:0)
我用一行代码解决了它:
class Program
{
static void Main(string[] args)
{
var specialList = new List<C>();
specialList.AddRange(listA.Where(x => ListB.Where(c => c.Name == x.Name).Any()).Select(x => new C()
{
Name = x.Name
}));
}
}
public class A
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
}
public class B
{
public int Id { get; set; }
public string Name { get; set; }
public string CompanyName { get; set; }
}
public class C
{
public string Name { get; set; }
}
如果使用此代码,您将有多种方法来创建特殊对象。 如果您对此功能有很多疑问,请评论我。