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();

并在必要时创建一个 IEqualityComparer 以与您的 Distinct 调用一起使用。有关使用 Distinct 实现 IEqualityComparer 的示例,请参见Enumerable.Distinct Method (IEnumerable, IEqualityComparer) 。

于 2012-06-20T15:34:28.757 回答