私は、クエリを持ってLINQはっきりと選択し、新しいクエリ
var QP = (from a in QProductAllInfo select new { a.Id, a.Title, a.FullTitle}).Distinct();
結果は次のとおりです。
- 1イワノフイワン
- 1イワノフイワン
- 2ペトロフペトル
- 3 Sidorovイワン
- 3 Sidorovイワン
と私は結果が必要です。
- 1イワノフイワン
- 2ペトロフペトル
- 3 Sidorovイワン
私は、クエリを持ってLINQはっきりと選択し、新しいクエリ
var QP = (from a in QProductAllInfo select new { a.Id, a.Title, a.FullTitle}).Distinct();
結果は次のとおりです。
と私は結果が必要です。
異なるIdが常に異なるとみなされると仮定すると、これを試すことができます。
私はおそらく2つのquerysでそれを記述します。そうすれば、デバッグが容易になり、読みやすくなります。 MoreLinq
を使用できます。
var temp = from a in QProductAllInfo select new { a.Id, a.Title, a.FullTitle}.ToList();
var result = temp.DistinctBy(i => i.Id);
また、あなたがQProductAllInfoで重複している場合は、これであなたのコードを交換して、あなたの問題を解決する必要があります
Var result = temp.GroupBy(x => x.Id).Select(y => y.First());
をDosn'tしかし、私はこのdatagridview.datasource =結果のようなコードを実行することはできません。 – alexandrovdi
データソースにIenumerableを割り当てることはできません。データソースにIenumerableを割り当てる方法については、Googleにお問い合わせください。私はASP.netをよくしていません – Sandeep
DistinctBy Workありがとうございます! – alexandrovdi
を.Distinct使用がかどうかを判断することをあなたがたIEqualityComparerを実装することができアイテムはすでにリストに存在します。代わりに同じオブジェクトへの参照で属性を比較することができます。
しかし、それは匿名型で動作するかどうかはわかりません。
を使用することができます。
var QP = from a in QProductAllInfo.Distinct()
select new { a.Id, a.Title, a.FullTitle };
これが動作しない場合は、あなたの代わりにこのような匿名型のタプルを使用することができますが:匿名型は常にそのdonc型を参照しているので、匿名型にDISTINCT演算子を適用する
var QP = from a in QProductAllInfo
select Tuple.Create(a.Id, a.Title, a.FullTitle);
は無用ですIEquatableインターフェイスを実装します。
実際に私は8つ以上の項目を選択する必要があります。そして最後に私は次に行う必要があります:datagridview.datasource = QP; – alexandrovdi
'Distinct'を' from a in QProductAllInfo.Distinct() 'のようにデータソースに適用しようとしましたか? – madd0
はい。それは助けられる仕事 – alexandrovdi