1

キャストを作成したり、正しい変換を行ったりするのに問題があります。IQueryable<T>タイプT のクエリがクラスでした:

var query = (from x in query
             group x by US.FirstName into g
             select g).Distinct();

このエラーが表示されます:

System.Linq.IQueryable<System.Link.IGrouping<string,T>>タイプを暗黙的にSystem.Linq.IQueryable<T>。>>に変換することはできません

実際に実行したいのは、クエリの一意の値を返すことです。

4

2 に答える 2

1
vQuery = vQuery.GroupBy(x => x.FirstName)
         .Select(g => g.First());

しかし、これはかなり恣意的です:あなたはOrderByまたはを行う必要がありますOrderByDescending

.Select(g => g.OrderBy(x => x.WhatEverYouWant).First())

「your」構文で見つかりました

vQuery = (from US in vQuery
 group US by US.FirstName into g
 select g.First())
于 2012-09-06T14:28:33.370 に答える
0

LINQでグループ化を実行すると、実際にはのコレクションが返されますIGrouping<TKey, TValue>vQueryこの結果を、元のクエリ用に定義したタイプの変数に戻そうとしていますIQueryable<T>。LINQクエリの結果を次のタイプの別の変数に入れる必要がありますIGrouping<TKey, TValue>

var groupedValues = (from US in vQuery
                     group US by US.FirstName into uniqueFirstName
                     select uniqueFirstName).Distinct();
于 2012-09-06T14:32:22.993 に答える