2012-11-13 24 views
-1

可能重複:
how can I do use Except() between two SelectListItem lists我試圖做一個「除()」,但沒有奏效

IEnumerable <SelectListItem>類型的兩個列表我需要創建一個新的IEnumerable <SelectListItem>第一個列表的元素不在第二個列表中。 我該怎麼做?

我試着用Except()做到這一點,但沒有奏效

示例代碼:

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

+0

你是什麼意思,「它沒有工作」? –

+0

@ L.B:他也問過這個問題:p – Pondidum

+0

真的,不要再問同樣的問題,而且肯定不是第一次半小時! –

回答

-1

這應該工作,採取alook在this example

  double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 }; 
      double[] numbers2 = { 2.2 }; 

      IEnumerable<double> onlyInFirstSet = numbers1.Except(numbers2); 

      foreach (double number in onlyInFirstSet) 
       Console.WriteLine(number); 

      /* 
      This code produces the following output: 

      2 
      2.1 
      2.3 
      2.4 
      2.5 
      */ 

我想問題是,在你的情況下(對於SelectedListItem)的等式比較器沒有定義,或更好地說,看起來相同的東西不是簡單的相同的對象,在這種情況下,你將不得不提供[IEqualityComparer]來定義哪些元素實際上相等1

public static IEnumerable<TSource> Except<TSource>(
    this IEnumerable<TSource> first, 
    IEnumerable<TSource> second, 
    IEqualityComparer<TSource> comparer 
) 
相關問題