الصفائف ذات النوع الضمني (دليل البرمجة لـ #C)

يمكنك إنشاء صفيف ذو نوع ضمني يتم الاستدلال على نوع مثيل الصفيف من العناصر المحددة في مهيئ الصفيف. القواعد التي تنطبق على متغيرات ذات النوع الضمني تنطبق على الصفائف ذات النوع الضمني. لمزيد من المعلومات، راجع المتغيرات المحلية ذات النوع المُختار ضمنياً (دليل البرمجة لـ #C).

يتم استخدام الصفائف ذات النوع الضمني في التعبيرات العادية مع الأنواع المجهولة ومهيئات المجموعات والكائنات.

تبين الأمثلة التالية كيفية إنشاء الصفائف ذات النوع الضمني:

class ImplicitlyTypedArraySample
{
    static void Main()
    {
        var a = new[] { 1, 10, 100, 1000 }; // int[]
        var b = new[] { "hello", null, "world" }; // string[]

        // single-dimension jagged array
        var c = new[]   
{  
    new[]{1,2,3,4},
    new[]{5,6,7,8}
};

        // jagged array of strings
        var d = new[]   
{
    new[]{"Luca", "Mads", "Luke", "Dinesh"},
    new[]{"Karen", "Suma", "Frances"}
};
    }
}

في المثال السابق، لاحظ أنه لا يتم أقواس مربعة مع الصفائف ذات النوع الضمني على الجانب الأيسر من عبارة التهيئة. لاحظ أيضاً أنه يتم تهيئة الصفائف الخشنة باستخدام new [] تمامًا مثل الصفائف أحادية البعد. لا يتم دعم الصفائف ذات النوع الضمني المتعددة الأبعاد.

الصفائف ذات النوع الضمني في مهيآت الكائن

عندما تقوم بإنشاء نوع مجهول يحتوي على صفيف يجب أن يكون ذا نوع ضمني في مهيئ كائن النوع. في المثال التالي، contacts عبارة عن صفيف ذو نوع ضمني من أنواع مجهولة كل منها يحتوي على صفيف يسمى PhoneNumbers. لاحظ أن الكلمة الأساسية var لا يتم استخدامها داخل مُهيآت الكائن.

        var contacts = new[] 
{
    new {
            Name = " Eugene Zabokritski",
            PhoneNumbers = new[] { "206-555-0108", "425-555-0001" }
        },
    new {
            Name = " Hanying Feng",
            PhoneNumbers = new[] { "650-555-0199" }
        }
};

راجع أيضًا:

المرجع

المتغيرات المحلية ذات النوع المُختار ضمنياً (دليل البرمجة لـ #C)

الصفائف (دليل البرمجة لـ #C)

الأنواع المجهولة (ارشادات برمجة C#)

مهيآت الكائنات والمجموعات (دليل البرمجة لـ #C)

var (C# مرجع)

المبادئ

دليل البرمجة لـ #C

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