将两个不同类型的列表与一些参数进行比较,选择进入另一个

本文关键字:参数 比较 另一个 选择 两个 列表 同类型 | 更新日期: 2023-09-27 18:34:51

我有两个不同类型的ab列表,我想从列表bc中选择b.SureName= a.SName和b.LastName=b.LName和b.Date>= a.StartDate和b.Date <= a.EndDate的数据。

列表可以做到这一点吗?我认为 c 列表类型需要与 b 相同?

将两个不同类型的列表与一些参数进行比较,选择进入另一个

你可以做

public List<C> GetProperty(List<A> a, List<B> b)
{
    IEnumerable<IEnumerable<C>> ccc = 
              b.Select(bb => a.Where(aa => bb.SureName == aa.SName && 
                                                          bb.LastName == aa.LName && 
                                                          bb.Date >= aa.StartDate &&
                                                          bb.Date <= aa.EndDate)
    .Select(cc => new C() { FullName = cc.SName + " " + cc.LName }));
    return ccc.SelectMany(c => c).ToList();
}
public class A
{
    public string SName { get; set; }
    public string LName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}
public class B
{
    public string SureName { get; set; }
    public string LastName { get; set; }
    public DateTime Date { get; set; }
}
public class C
{
    public string FullName { get; set; }
}