0

私のモデルクラスは次のようなものです:

Public class abc {

         public string p1 get; set;
         public string p2 get; set;
}

そして、私はこのようにキャストしようとしています

IEnumerable<abc> data= ( IEnumerable<abc>) (from d in d.GetAll()
                       select new {
                        p1= d.p1,
                        p2= d.p2
                     }).Distinct();

それは私にエラーを与えています:

Unable to cast object of type <DistinctIterator>

お知らせ下さい

4

1 に答える 1

3

匿名タイプを既知のタイプに直接キャストすることはできません。代わりにこれを行ってください:

IEnumerable<abc> data = from d in d.GetAll()
                    select new abc() {
                     p1 = d.p1,
                     p2 = d.p2
                  }).Distinct();

必要に応じて、Distinct呼び出しで使用するIEqualityComparerを作成します。Distinctを使用してIEqualityComparerを実装する例については、Enumerable.Distinctメソッド(IEnumerable、IEqualityComparer)を参照してください。

于 2012-06-20T15:34:28.757 に答える