私は2つのデータテーブル、例えばdt1とdt2を持っています。 dt1にはすべての国のリストが含まれており、dt2には少数の国のリストが含まれています。 dt3のデータテーブルdt2のリストを除くすべての国を含むデータテーブルが必要です。データテーブルの検索方法
0
A
答えて
3
使用Enumerable.Except(IEnumerable, IEnumerable) Method:
DataTable onlyInFirstTable = dt1.AsEnumerable().Except(dt2.AsEnumerable()).CopyToDataTable();
+0
これは素晴らしいものでした。 – Shah
3
Except
を使用するには、あなたは彼らがdt2
に同じDataRow
のではありませんので、既定の比較がdt1
内のすべての行を返しますので、IEqualityComparer<DataRow>
を受け取るオーバーロードを使用する必要があります。あなたの場合は
var dt3 = dt1.AsEnumerable().Except(dt2.AsEnumerable(), new CountryRowComparer()).CopyToDataTable();
:あなたは次のようにdt2
にないdt1
で国を得ることができます
public class CountryRowComparer : IEqualityComparer<DataRow>
{
public bool Equals(DataRow r1, DataRow r2)
{
return r1["Country"] == r2["Country"];
}
public int GetHashCode(DataRow r)
{
return r["Country"].GetHashCode();
}
}
:この単純な実装を(エラー処理を追加する必要があります)を使用して、例えば
、このためにIEqualityComparer
クラスを作成しても構いません。dt1
の国を取得する別の方法は、dt2
になります。
var exclude = dt2.AsEnumerable()
.Select(r => r.Field<string>("Country"));
var dt3 = dt1.AsEnumerable()
.Where(r => !exclude.Contains(r.Field<string>("Country")))
.CopyToDataTable();
関連する問題
- 1. マルチカラム検索データテーブル
- 2. ブートストラップ、データテーブル、AJAX、検索
- 3. グローバル検索データテーブルreact
- 4. データロード後のデータテーブルの検索
- 5. c#.netを使用してデータテーブルの行を検索する方法
- 6. 弾性検索クエリの検索、_sourceで検索する方法
- 7. ベクトル/データテーブルを後方に検索するR
- 8. @の検索方法スフィンクスの&()
- 9. Webサービスの検索方法
- 10. パーセンテージの検索方法
- 11. ロケーションベースの検索方法
- 12. X509SerialNumberの検索方法
- 13. UIImageView Pathの検索方法
- 14. リスト内の検索方法
- 15. .babelrcの検索方法
- 16. htmlドロップダウンメニューの検索方法
- 17. ORMの検索方法
- 18. スクリプトの検索方法
- 19. "Find"データの検索方法
- 20. bootstrap.cssの検索方法
- 21. HtmlUnit:テキストの検索方法
- 22. の検索方法は、Eclipse
- 23. サブストリングの検索方法javascript
- 24. HBaseデータの検索方法
- 25. フレックス - データグリッドセルオブジェクトの検索方法
- 26. Railsの検索方法
- 27. MS Wordの検索方法
- 28. リンクリストの検索方法
- 29. クラス内の検索方法
- 30. オペレーティングシステムドライブの検索方法
これまでに何を試しましたか?それはあなたを助けるでしょう。私たちはあなたのためにあなたの仕事をしません。 – Amy
宿題のような音.... – DonCallisto
ヒント:** except ** –