"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تحويل DataReader بكفاءة إلى قائمة في .NET؟

كيف يمكنني تحويل DataReader بكفاءة إلى قائمة في .NET؟

نشرت في 2025-02-02
تصفح:135

How Can I Efficiently Convert a DataReader into a List in .NET?

بيانات معالجة فعالة: تحويل dataReader إلى قائمة

عند معالجة البيانات في بيئة .NET ، قد تحتاج إلى تحويل DataReader (تدفق البيانات الذي يقرأ فقط للأمام) إلى التنسيقات الأكثر سهولة في إدارة ، مثل القائمة . يتيح لك هذا التحويل الوصول إلى البيانات المهيكلة ومعالجتها بشكل أكثر كفاءة. الحل: الامتداد

طريقة التحويل هي استخدام طريقة التوسع. المثال كما يلي:

static static ienumerable حدد (قارئ idareader هذا ، Func Project) {{ بينما (reader.read ()) {{ العائد مشروع العودة (القارئ) ؛ } } تتيح لك طريقة التوسع هذه تحديد البيانات من DataReader مع وظيفة الإسقاط وتحويلها إلى ienumeration

.

كيفية استخدام طريقة الاستخدام
public static IEnumerable Select(this IDataReader reader,
                                       Func projection)
{
    while (reader.Read())
    {
        yield return projection(reader);
    }
}
، يمكنك استخدام الكود التالي:

باستخدام (eDareader reader = ...) {{ قائمة العملاء = reader.select (r => عميل جديد { CustomerId = R ["id"] هل DBNULL؟ cusomername = r ["الاسم"] هو dbnull؟ }). }

يحول هذا المثال الصف في DataReader إلى قائمة كائن العميل. طريقة بديلة: طريقة خاصة للأنواع المادية

أو ، يمكنك إنشاء طريقة ثابتة مخصصة في كيان العميل:

العميل الثابت العام fromDatareader (idatareader reader) {...}
using (IDataReader reader = ...)
{
    List customers = reader.Select(r => new Customer {
        CustomerId = r["id"] is DBNull ? null : r["id"].ToString(),
        CustomerName = r["name"] is DBNull ? null : r["name"].ToString()
    }).ToList();
}

باستخدام هذه الطريقة ، يمكنك تبسيط عملية التحويل:

باستخدام (eDareader reader = ...) {{ قائمة العملاء = reader.select مع هذه التقنيات ، يمكنك تحويل البيانات بكفاءة في DataReader إلى قائمة

لاستخدام الوظائف القوية لـ LINQ لمزيد من تشغيل البيانات ومعالجتها.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3