-1

重複の可能性:
2 つの SelectListItem リスト間で Except() を使用するにはどうすればよいですか

2番目のリストに存在しない最初のリストの要素をIEnumerable <SelectListItem>使用して新しいリストを作成する必要があるタイプのリストが2つあります。IEnumerable <SelectListItem>これどうやってするの?

でやってみましたがうまくいきExcept()ませんでした

コード例:

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

4

1 に答える 1

-1

これはうまくいくはずです、この例を見てください:

            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
)
于 2012-11-13T14:04:12.860 に答える