Aracılığıyla paylaş


LINQ ve genel türler (C#)

LINQsorguları esas alır, 2.0 sürümünde sunulan genel türler .NET Framework.Sorguları yazmaya başlamadan önce generics, kapsamlı bir bilgi gerekmez.Ancak, iki temel kavramlarını anlamak isteyebilirsiniz:

  1. Oluşturduğunuzda genel koleksiyon sınıfının bir örneği gibi List<T>, "t" liste tutacaktır nesnelerin türünü değiştirin.Örneğin, bir dizgi listesi olarak ifade edilen, List<string>ve bir listesini Customer olarak nesneleri ifade List<Customer>.Genel liste kesinlikle yazılan ve kendi öğeleri olarak depolamak Koleksiyonlar üzerinde birçok fayda sağlar Object.Eklemeyi denerseniz, bir Customer için bir List<string>, derleme zamanında bir hata iletisi alır.Kullanımı kolay genel koleksiyonlar, çalışma zamanı tür-çevrim gerçekleştirmek zorunda değil çünkü.

  2. IEnumerable<T>Genel koleksiyon sınıfları kullanarak Numaralandırılacak sağlayan bir arabirim foreach ifadesi.Genel koleksiyon sınıfları Destek IEnumerable<T> hemen olarak genel olmayan koleksiyon sınıfları gibi ArrayList Destek IEnumerable.

Generics hakkında daha fazla bilgi için bkz: Generics (C# Programlama Kılavuzu).

IEnumerable &lt;T&gt; LINQ sorguları değişkenleri

LINQSorgu değişken olarak yazılı IEnumerable<T> veya türetilmiş bir tür gibi IQueryable<T>.Olarak yazılan bir sorgu değişkeni gördüğünüzde IEnumerable<Customer>, yalnızca bir dizi sıfır veya daha çok sorgu yürütüldüğünde, oluşturacak anlamı Customer nesneler.

IEnumerable<Customer> customerQuery =
    from cust in customers
    where cust.City == "London"
    select cust;

foreach (Customer customer in customerQuery)
{
    Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}

Daha fazla bilgi için bkz. Tür ilişkileri LINQ sorgu işlemlerinde (C#).

Derleyici tanıtıcı genel tür bildirimleri belirlemesine izin verme

İsterseniz, kullanarak genel sözdizimi önleyebilirsiniz var anahtar sözcüğü.var Anahtar sözcük sorgu değişken türü, belirtilen veri kaynağına bakarak gerçekleştirip derleyici söyler from yan tümcesi.Aşağıdaki örnek, önceki örnek olarak aynı derlenmiş kod üretir:

var customerQuery2 = 
    from cust in customers
    where cust.City == "London"
    select cust;

foreach(var customer in customerQuery2)
{
    Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}

var Anahtar sözcüğünü, değişkenin türünü belirgin olduğunda ya da ne zaman Grup sorgular tarafından üretilen gibi iç içe genel türler açık olarak belirtmek bu önemli değildir yararlıdır.Kullanırsanız, genel olarak, öneririz var, onu kodunuzu daha zor başkalarının okuması yapabileceğini fark.Daha fazla bilgi için bkz. Yerel değişkenler örtülü olarak yazılı (c Programlama Kılavuzu #).

Ayrıca bkz.

Başvuru

Generics (C# Programlama Kılavuzu)

Diğer Kaynaklar

C# [NULL]'taki LINQ ile çalışmaya başlama