私は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. ブートストラップ、データテーブル、AJAX、検索
- 2. @の検索方法スフィンクスの&()
- 3. フレックス - データグリッドセルオブジェクトの検索方法
- 4. ロケーションベースの検索方法
- 5. ORMの検索方法
- 6. パーセンテージの検索方法
- 7. オペレーティングシステムドライブの検索方法
- 8. ダイナミックフォームの検索方法
- 9. UIImageView Pathの検索方法
- 10. Webサービスの検索方法
- 11. X509SerialNumberの検索方法
- 12. HBaseデータの検索方法
- 13. Railsの検索方法
- 14. インデックス検索方法の実行方法
- 15. xcode 3.2の検索パスとヘッダーの検索パス設定の検索方法
- 16. データテーブル内の検索ボックスのDOM要素位置の変更
- 17. emacs - サブディレクトリでのファイル検索の検索方法
- 18. データテーブル内の特定の値を検索する
- 19. multiphrase方法 - 弾性検索
- 20. 二重リンクリスト検索方法
- 21. 検索された列のデータ型を検索する方法
- 22. 同時にデータテーブルと検索テーブルのカスケード削除
- 23. 2つの検索ボックスとページネーションデータを示すデータテーブル
- 24. データテーブル内の行を検索して.Net内で削除する
- 25. 2つの検索テキストパラメータを使用してpostgres検索する方法、検索フィルタテキスト1 &&検索フィルタテキスト2
- 26. ファイルを検索して整数を検索する方法
- 27. フルテキスト検索でmutilple列検索を許可する方法
- 28. 検索時にテキストが無視されます - データテーブル
- 29. Windows Phoneで大きなデータテーブルを高速検索する
- 30. MySQLの列名の検索方法は?
これまでに何を試しましたか?それはあなたを助けるでしょう。私たちはあなたのためにあなたの仕事をしません。 – Amy
宿題のような音.... – DonCallisto
ヒント:** except ** –