سؤال

لدي 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 ")); }) });

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top