تصفية جدول البيانات لقيم متعددة
سؤال
لدي 2 داتاتابلز أوبجداتاتاتابل 1 و أوبجداتاتاتابل 2 .
أحتاج إلى تصفية البيانات في أوبجداتاتاتابل 2 مثل أن سوقي في أوبجداتاتاتابل 2 لا ينبغي أن يكون في أوبجداتاتاتابل 1.
أنا حتى لفتح لينق التي سوف تصفية الاتصالات على ليس في بند
المحلول
هذه النسخ إلى داتاتابل dt
جميع الصفوف من objectdatatable2
التي لها قيم في حقل 'معرف السوق' والتي لا تظهر في حقل يحمل نفس الاسم في objectdatatable1
.في هذا تحرير حقل 'معرف السوق' من نوع string
في objectdatatable2
ومن النوع int
في objectdatatable1
.
// This creates an empty DataTable with the same structure as objdatatable2.
DataTable dt = objdatatable2.Clone();
var results = objdatatable2.AsEnumerable().Where(r2 => !objdatatable1.AsEnumerable().Any(r1 => (r2.Field<string>("market_id") == r1.Field<int>("market_id").ToString())));
// Copy results to the DataTable only if there are results.
if (results.Count() > 0) {
dt = results.CopyToDataTable();
}
نصائح أخرى
objdatatable2.AsEnumerable().SkipWhile(dr2 => { return objdatatable1.AsEnumerable().Any(dr1 => { return (dr1.Field<String>("market_id ") == dr2.Field<String>("market_id ")); }) });
لا تنتمي إلى StackOverflow