Aracılığıyla paylaş


Koleksiyon Başlatıcı (Visual Basic)

Koleksiyon başlatıcılar bir koleksiyon oluşturabilir ve başlangıç değerleri kümesi ile doldurmak sağlayan bir kısaltılmış sözdizimi sağlar.Koleksiyon başlatıcılar koleksiyonu kümesinden bilinen değerleri, örneğin, menü seçenekleri veya kategorileri, sayısal değerler başlangıç kümesi, doğrulama için kullanılan statik listesini dizeleri olarak gün veya ay adlarını veya durumlarının listesini gibi coğrafi konumları listesini oluştururken yararlıdır.

Koleksiyonlar hakkında daha fazla bilgi için bkz: Koleksiyon (C# ve Visual Basic).

Kullanarak toplama başlatıcısı tanımlamak From sözcüğünü, kaşlı ayraç ({}).Bu anlatılan array değişmez sözdizimini için benzer Visual Basic'te diziler.Aşağıdaki örnekler, koleksiyon başlatıcılar koleksiyonları oluşturmak için kullanılacak çeşitli yollarını gösterir.

' Create an array of type String().
Dim winterMonths = {"December", "January", "February"}

' Create an array of type Integer()
Dim numbers = {1, 2, 3, 4, 5}

' Create a list of menu options. (Requires an extension method
' named Add for List(Of MenuOption)
Dim menuOptions = New List(Of MenuOption) From {{1, "Home"},
                                                {2, "Products"},
                                                {3, "News"},
                                                {4, "Contact Us"}}

[!NOT]

C# ayrıca koleksiyon başlatıcılar sağlar.C# koleksiyonu başlatıcılar Visual Basic koleksiyonu Başlatıcı aynı işlevleri sağlar.C# koleksiyonu başlatıcılar hakkında daha fazla bilgi için bkz: Nesne ve koleksiyon Başlatıcı (C# Programlama Kılavuzu).

Sözdizimi

Ayraç içine virgülle ayrılmış değerler listesi, bir koleksiyon Başlatıcı oluşur ({}), preceded tarafından From aşağıdaki kodda gösterildiği gibi anahtar sözcüğü.

Dim names As New List(Of String) From {"Christa", "Brian", "Tim"}

Oluşturduğunuzda bir toplama gibi bir List<T> veya bir Dictionary<TKey, TValue>, aşağıdaki kodda gösterildiği gibi koleksiyon Başlatıcısı önce koleksiyon türü sağlamanız gerekir.

Public Class AppMenu
    Public Property Items As List(Of String) =
        New List(Of String) From {"Home", "About", "Contact"}
End Class

[!NOT]

Koleksiyon Başlatıcı ve bir nesne Başlatıcı aynı koleksiyon nesnesi başlatılamıyor birleştiremezsiniz.Nesne başlatıcılar nesneleri koleksiyonu Başlatıcı başlatmak için kullanabilirsiniz.

Koleksiyon Initializer kullanarak bir koleksiyon oluşturma

Koleksiyon Başlatıcı'yı kullanarak bir koleksiyonu oluştururken, koleksiyonu başlatıcı tarafından sağlanan her değer için uygun geçirilen Add toplama yöntemi.Örneğin, oluşturduğunuz bir List<T> koleksiyonu Başlatıcı kullanarak toplama Başlatıcı her bir dize değeri için geçirilen Add yöntemi.Belirtilen tür, koleksiyon Başlatıcı'yı kullanarak bir koleksiyon oluşturmak istiyorsanız, geçerli koleksiyon türü olması gerekir.Geçerli tahsilat türlerine örnekler uygulayan sınıflar IEnumerable<T> arabirim veya miras CollectionBase sınıfı.Belirtilen tür de sergilemek gerekir bir Add aşağıdaki ölçütlere uyan bir yöntem.

  • Add Yöntemi kullanılabilir olmalıdır, koleksiyon Başlatıcısı adlı kapsam.Add Yöntemi koleksiyonunun genel olmayan yöntemler burada erişilebilir bir senaryoda koleksiyonu Başlatıcı kullanıyorsanız, ortak olarak sahip değil.

  • Add Yöntemi, örnek üye olmalı veya Shared koleksiyon sýnýfýný ya da uzantısı yöntemi üyesi.

  • Bir Add gereken yöntem var, eşleşen, aşırı çözümleme kurallarını koleksiyonu Başlatıcı sağlanan türlerine göre.

Örneğin, aşağıdaki kod örneği nasıl oluşturulacağını gösteren bir List(Of Customer) koleksiyonu Başlatıcı kullanarak toplama.Ne zaman kod çalıştırıldığında, her Customer için nesneyi geçirilen Add(Customer) genel liste yöntemi.

Dim customers = New List(Of Customer) From
    {
        New Customer("City Power & Light", "http://www.cpandl.com/"),
        New Customer("Wide World Importers", "http://www.wideworldimporters.com/"),
        New Customer("Lucerne Publishing", "http://www.lucernepublishing.com/")
    }

Aşağıdaki kod örneği, koleksiyon Başlatıcı kullanmaz eşdeğer kodunu gösterir.

Dim customers = New List(Of Customer) 
customers.Add(New Customer("City Power & Light", "http://www.cpandl.com/"))
customers.Add(New Customer("Wide World Importers", "http://www.wideworldimporters.com/"))
customers.Add(New Customer("Lucerne Publishing", "http://www.lucernepublishing.com/"))

Koleksiyonu varsa, bir Add kurucusu uyan parametreler içeren yöntem Customer nesne içe, parametre değerleri için Add yöntemi sonraki bölümde anlatıldığı gibi koleksiyon başlatıcılar içinde.Koleksiyon gibi yoksa, bir Add yöntemi, tek bir uzantısı yöntemi olarak oluşturabilirsiniz.Nasıl oluşturulacağını gösteren bir örnek için bir Add yöntemi bir koleksiyon için bir uzantısı yöntemi olarak görmek Nasıl yapılır: oluştur bir koleksiyon Başlatıcı (Visual Basic) tarafından kullanılan uzantısı yöntemi ekleyin.Koleksiyon başlatıcı ile kullanılan özel bir koleksiyon oluşturmak nasıl bir örnek için bkz: Nasıl yapılır: koleksiyon Başlatıcı (Visual Basic) tarafından kullanılan bir koleksiyon oluşturma.

Koleksiyon başlatıcılar iç içe geçirme

Belirli bir aşırı yüklenmesini tanımlamak için bir koleksiyon Başlatıcı içindeki değerleri iç içe bir Add için oluşturulmakta olan tahsilat yöntemi.Geçirilen değerleri Add yöntemi virgül ile ayrılmış ve küme ayraçları içine alýnmasý ({}), bir dizi hazır bilgi ya da koleksiyon Başlatıcı yaptığınız gibi.

İç içe geçmiş değerleri kullanarak bir koleksiyonu oluştururken, iç içe değer listesindeki her öğe için bağımsız değişken olarak geçirilen Add eşleşen öğe türlerini yöntemi.Örneğin, aşağıdaki kod örneği oluşturur bir Dictionary<TKey, TValue> türü anahtarları olduğu, Integer ve değer türü String.Her iç içe değer listeleri için eşleştirilir Add yöntemi Dictionary.

Dim days = New Dictionary(Of Integer, String) From
    {{0, "Sunday"}, {1, "Monday"}}

Önceki kod örneği, aşağıdaki kodu eşdeğerdir.

Dim days = New Dictionary(Of Integer, String)
days.Add(0, "Sunday")
days.Add(1, "Monday")

Yalnızca ilk düzeylik iç içe değer listeleri için gönderilen Add koleksiyon türü için yöntem.Daha derin düzeyde iç içe dizi değişmezleri kabul edilir ve iç içe değer listeleri olarak eşleşmeyen Add herhangi bir tahsilat yöntemi.

İlgili Konular

Başlık

Description

Nasıl yapılır: oluştur bir koleksiyon Başlatıcı (Visual Basic) tarafından kullanılan uzantısı yöntemi ekleyin

Adı verilen bir uzantısı yöntemi nasıl oluşturulacağını gösterir Add bir koleksiyon toplama Başlatıcı değerlerle doldurmak için kullanılabilir.

Nasıl yapılır: koleksiyon Başlatıcı (Visual Basic) tarafından kullanılan bir koleksiyon oluşturma

Dahil ederek koleksiyon Başlatıcı kullanımını etkinleştirmek nasıl gösterir bir Add yöntemi uygulayan bir koleksiyon sýnýfý IEnumerable.

Ayrıca bkz.

Görevler

Nasıl yapılır: Visual Basic'te Dizi Değişkeni Başlatma

Nasıl yapılır: bir liste oluşturur

Başvuru

New operatörü (Visual Basic)

Kavramlar

Nesne Başlatıcılar: Adlandırılmış ve anonim türleri (Visual Basic)

Otomatik uygulanan özellikler (Visual Basic)

Yerel tür kesmesi (Visual Basic)

Anonim türleri (Visual Basic)

LINQ Visual Basic giriş

Diğer Kaynaklar

Koleksiyon (C# ve Visual Basic)

Visual Basic'te diziler