Ane*_*een 5 .net c# generics list
我有两个Lists.我希望根据ID获取匹配和不匹配的值,并将结果添加到另一个List.我可以使用这两种方法Intersect/Except.
但是我只能在结果变量(匹配和不匹配)中获得ID.我需要模板中的所有属性.
List<Template> listForTemplate = new List<Template>();
List<Template1> listForTemplate1 = new List<Template1>();
var matches = listForTemplate .Select(f => f.ID)
.Intersect(listForTemplate1 .Select(b => b.ID));
var ummatches = listForTemplate .Select(f => f.ID)
.Except(listForTemplate1.Select(b => b.ID));
public class Template
{
public string ID{ get; set; }
public string Name{ get; set; }
public string Age{ get; set; }
public string Place{ get; set; }
public string City{ get; set; }
public string State{ get; set; }
public string Country{ get; set; }
}
public class Template1
{
public string ID{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果您不想实现IEquality这个简单的任务,您可以修改 LINQ 查询:
var matches = listForTemplate.Where(f => listForTemplate1.Any(b => b.ID == f.ID));
Run Code Online (Sandbox Code Playgroud)
和
var unmatches = listForTemplate.Where(f => listForTemplate1.All(b => b.ID != f.ID));
Run Code Online (Sandbox Code Playgroud)
您可能想在访问之前检查 null ID,但它应该可以工作。