从列表中删除项目(如果该项目存在于其他列表中)
本文关键字:列表 于其他 其他 存在 删除项目 如果 项目 | 更新日期: 2023-09-27 17:57:28
我有一个类:
[Serializable()]
public class Computer
{
[System.Xml.Serialization.XmlElement("Id")]
public int Id { get; set; }
[System.Xml.Serialization.XmlElement("Name")]
public string Name { get; set; }
[System.Xml.Serialization.XmlElement("Cost")]
public double Cost { get; set; }
public string NameCost
{
get
{
return Name + " " + Cost.ToString(CultureInfo.InvariantCulture);
}
}
}
我有三份清单。其中一台包含成本最低的计算机,另一台则包含成本最高的计算机。包含所有元素的最后一个列表。我需要删除列表中的所有元素,除了其他两个列表中存在的元素。你知道吗?救命,祝你今天愉快!
效率不高,但应该有效:
listWithAllPC = listWithAllPC
.Where(pc => listWithMinCostPC.Any(minPC => pc.Id == minPC.Id)
&& listWithMaxCostPC.Any(maxPC => pc.Id == maxPC.Id))
.ToList();
var idList = list1.Union(list2).Select(x => x.Id).ToList();
list3.RemoveAll(x => !idList.Contains(x.Id));