我怎么能在两个SelectListItem列表之间使用Except()

时间:2012-11-13 13:29:08

标签: c# asp.net-mvc-3 linq

我有两个类型IEnumerable <SelectListItem>的列表我需要创建一个新的IEnumerable <SelectListItem>,其中第一个列表的元素在第二个列表中不存在。我怎么能这样做?

我尝试使用Except()但是没有结果......

示例代码:

IEnumerable<SelectListItem> SelectListItemA = ....;
IEnumerable<SelectListItem> SelectListItemB = ....;
IEnumerable<SelectListItem> Except = SelectListItemA.Except(SelectListItemB);

1 个答案:

答案 0 :(得分:1)

可能是这样的:

var items1 = new List<SelectListItem>();
var items2 = new List<SelectListItem>();
//[.. populate lists here ..]
var onlyInFirst = items1.RemoveAll(item1 => items2.Any(item2 => item1.Value == item2.Value));

Except要求在遍历的类中实现EqualsGetHashCode