مشاركة عبر


تحويل أنواع بيانات

أساليب التحويل تغير نوع كائنات الإدخال.

عمليات التحويل في استعلامات LINQ مفيدة في العديد من التطبيقات. فيما يلي بعض الأمثلة:

الأساليب

يسرد جدول التالي أساليب مشغل الاستعلامات القياسي الذي ينفذ عمليات تحويل نوع بيانات.

أساليب التحويل في هذا الجدول التي تبدأ أسماؤها مع "As" تغير النوع الثابت للمجموعة ولكن لاتقوم بتعدادها. الأساليب ذات الأسماء التي تبدأ بـ"To" يقوم بتعداد مجموعة وتضع العناصر في نوع المجموعة المطابقة.

اسم الأسلوب

الوصف

تعبير استعلام بناء جمل #C

تعبير استعلام Visual Basicلبناء جمل #C

معلومات إضافية

AsEnumerable

تقوم بإرجاع الإدخال الذي تم تحديد نوعه كـ IEnumerable<T>.

غير متوفر.

غير متوفر.

Enumerable.AsEnumerable<TSource>

AsQueryable

تقوم بتحويل IEnumerable (عام) إلى IQueryable (عام).

غير متوفر.

غير متوفر.

Queryable.AsQueryable

Cast

تحول عناصر المجموعة إلى نوع محدد.

استخدم متغير نطاق محدد النوع بشكل صريح. فعلى سبيل المثال:

from string str in words

From … As …

Enumerable.Cast<TResult>

Queryable.Cast<TResult>

OfType

تقوم بتصفية القيم اعتماداً على القدرة على تحويله إلى نوع محدد.

غير متوفر.

غير متوفر.

Enumerable.OfType<TResult>

Queryable.OfType<TResult>

toArray

تحول مجموعة إلى صفيف. تفرض هذه الطريقة تنفيذ الاستعلام.

غير متوفر.

غير متوفر.

Enumerable.ToArray<TSource>

ToDictionary

يضع العناصر في Dictionary<TKey, TValue> مستند على وظيفة محدد المفتاح. تفرض هذه الطريقة تنفيذ الاستعلام.

غير متوفر.

غير متوفر.

Enumerable.ToDictionary

toList

تحول مجموعة إلى List<T>. تفرض هذه الطريقة تنفيذ الاستعلام.

غير متوفر.

غير متوفر.

Enumerable.ToList<TSource>

ToLookup

تضع عناصر في Lookup<TKey, TElement> (في اتجاه واحد-إلى-أكثر) مستندة إلى دالة محدد المفتاح. تفرض هذه الطريقة تنفيذ الاستعلام.

غير متوفر.

غير متوفر.

Enumerable.ToLookup

مثال بناء جملة تعبير استعلام

يستخدم مثال التعليمات البرمجية التالي متغير نطاق محدد النوع بوضوح في #C أو بند From As في Visual Basic لتحويل نوع إلى نوع فرعي قبل الوصول إلى عضو متوفر فقط للنوع الفرعي.

Class Plant
    Public Property Name As String
End Class

Class CarnivorousPlant
    Inherits Plant
    Public Property TrapType As String
End Class

Sub Cast()

    Dim plants() As Plant = { 
        New CarnivorousPlant With {.Name = "Venus Fly Trap", .TrapType = "Snap Trap"}, 
        New CarnivorousPlant With {.Name = "Pitcher Plant", .TrapType = "Pitfall Trap"}, 
        New CarnivorousPlant With {.Name = "Sundew", .TrapType = "Flypaper Trap"}, 
        New CarnivorousPlant With {.Name = "Waterwheel Plant", .TrapType = "Snap Trap"}}

    Dim query = From plant As CarnivorousPlant In plants 
                Where plant.TrapType = "Snap Trap" 
                Select plant

    Dim sb As New System.Text.StringBuilder()
    For Each plant In query
        sb.AppendLine(plant.Name)
    Next

    ' Display the results.
    MsgBox(sb.ToString())

    ' This code produces the following output:

    ' Venus Fly Trap
    ' Waterwheel Plant

End Sub
class Plant
{
    public string Name { get; set; }
}

class CarnivorousPlant : Plant
{
    public string TrapType { get; set; }
}

static void Cast()
{
    Plant[] plants = new Plant[] {
        new CarnivorousPlant { Name = "Venus Fly Trap", TrapType = "Snap Trap" },
        new CarnivorousPlant { Name = "Pitcher Plant", TrapType = "Pitfall Trap" },
        new CarnivorousPlant { Name = "Sundew", TrapType = "Flypaper Trap" },
        new CarnivorousPlant { Name = "Waterwheel Plant", TrapType = "Snap Trap" }
    };

    var query = from CarnivorousPlant cPlant in plants
                where cPlant.TrapType == "Snap Trap"
                select cPlant;

    foreach (Plant plant in query)
        Console.WriteLine(plant.Name);

    /* This code produces the following output:

        Venus Fly Trap
        Waterwheel Plant
    */
}

مزيد حول كيفية القيام بتحويل أنواع بيانات

Topic Location
كيفية القيام بما يلي: استعلام ArrayList مع LINQ dv_Linq

راجع أيضًا:

المرجع

من جملة (C# مرجع)

من عبارة (Visual Basic)

System.Linq

المبادئ

نظرة عامة على مشغلات استعلام قياسية

تعبيرات الاستعلام LINQ (C# البرمجة الدليل)