0

ポータブル クラス ライブラリ (PCL) を作成していて、List.Exists() と List.TrueForAll() を使用しようとしていますが、System.Collections.Generic.List には Exists または Exists の定義が含まれていないと言われています。 TrueForAll。私が作成している PCL は、.Net 4.5、Silverlight 4、Windows Phone 7.5、Mono Android、Mono iOS で動作するようになっています。私が見逃しているものはありますか?

注: このコードは、私が作成した .Net 4.0 ライブラリで動作します。

エラーを返すコード例:

List<object> set0;
List<object> set1;

if (set0.TrueForAll(obj0 => set1.Exists(obj1 => obj0.Equals(obj1))))
    return true;

if(!(set0.Exists(obj0 => !set1.Exists(obj1 => obj0.Equals(obj1)))))
    return true;

受信したエラー:

エラー: 'System.Collections.Generic.List' には 'Exists' の定義が含まれておらず、タイプ 'System.Collections.Generic.List' の最初の引数を受け入れる拡張メソッド 'Exists' が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)

エラー: 'System.Collections.Generic.List' には 'TrueForAll' の定義が含まれておらず、タイプ 'System.Collections.Generic.List' の最初の引数を受け入れる拡張メソッド 'TrueForAll' が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)

4

1 に答える 1

1

set0が(数学的に) のサブセットであるかどうかを、面倒な方法で判断しようとしているようですset1。タイプをList<>からHashSet<>またはSortedSet<>に変更すると、この機能を無料で利用できます。

それ以外の場合は、使用を検討してください

set0.Except(set1).Any()

リンクから。

ポータブル クラス ライブラリ (PCL) にどのメソッドが存在するかはわかりませんがList<>.Existsドキュメントによると、このメソッドは存在します。そして、私が言及したLinqメソッドも。

于 2013-06-13T14:42:35.883 に答える