Aracılığıyla paylaş


LINQ'i Destekleyen C# Özellikleri

Aşağıdaki bölüm, C# 3.0 sürümünde sunulan yeni dil yapıları tanıtır.Bu yeni özellikler tüm derecede ile kullanılmasına karşın LINQ sorguları, bunlar değil sınırlı LINQ ve burada yararlı bulduğunuz herhangi bir içerikte kullanılabilir.

Sorgu ifadeleri

Sorguları ifadeler IEnumerable Koleksiyonlar üzerinde bir sorgu için sql ya da XQuery benzer bildirimsel sözdizimi kullanın.Derleme sırasında zaman sorgu sözdizimi için yöntem çağrıları dönüştürülür bir LINQ standart sorgu işleci uzantısı yöntemleri sağlayıcının uygulamasıdır.Uygulamaları kontrol ile uygun ad belirterek kapsam içindedir standart sorgu işleçleri bir using yönergesi.Aşağıdaki sorgu ifadesi dize dizisi alır, bunları dizedeki ilk karakter için göre gruplandırır ve siparişleri gruplar.

var query = from str in stringArray
            group str by str[0] into stringGroup
            orderby stringGroup.Key
            select stringGroup;

Daha fazla bilgi için bkz. LINQ Sorgu İfadeleri (C# Programlama Kılavuzu).

Örtülü olarak yazılan değişkenleri (var)

Bildirip bir değişkenine atayacak, açıkça bir tür belirtmek yerine kullanabileceğiniz var derleyici gerçekleştirip ve türünü atamak için aşağıda gösterildiği gibi istemek için değiştirici:

var number = 5;
var name = "Virginia";
var query = from str in stringArray
            where str[0] == 'm'
            select str;

Olarak bildirilen değişkenler var hemen olarak kesinlikle türünü açıkça belirttiğiniz değişkenler olarak yazılmış olan.Kullanımını var anonim türleri, ancak oluşturma olanağı kullanılabileceği için herhangi bir yerel değişken yapar.Diziler, örtülü yazarken da bildirilebilir.

Daha fazla bilgi için bkz. Örtülü Olarak Yazılan Yerel Değişkenler (C# Programlama Kılavuzu).

Nesne ve koleksiyon Başlatıcı

Nesne ve koleksiyon başlatıcılar nesneleri nesne için açıkça bir oluşturucu çağrılırken olmadan başlatmak olanaklı kılar.Başlatıcı, sorgu ifadelerde, genellikle bunlar proje kaynak verilerini yeni bir veri türü kullanılır.Adında bir sınıf varsayılarak Customer ile ortak Name ve Phone özellikler, nesne Başlatıcı gibi aşağıdaki kod kullanılabilir:

Customer cust = new Customer { Name = "Mike", Phone = "555-1212" };

Daha fazla bilgi için bkz. Nesne ve Koleksiyon Başlatıcıları (C# Programlama Kılavuzu).

Anonim türleri

Derleyici tarafından oluşturulmuş bir anonim tür ve tür adı derleyici kullanılabilir.Anonim türleri özellikleri geçici olarak bir sorgu sonuç kümesi türü adlı ayrı bir tanýmlamak zorunda kalmadan gruplandırmak için elverişli bir yol sunar.Anonim türleri aşağıda gösterildiği gibi yeni bir ifade ve bir nesne başlatıcı ile başlatılır:

select new {name = cust.Name, phone = cust.Phone};

Daha fazla bilgi için bkz. Anonim Türler (C# Programlama Kılavuzu).

Uzantı yöntemleri

Böylece onu bir oluşum yöntemi türü yokmuş gibi çağrılabilir bir uzantısı bir türü ile ilişkili olabilir bir static yöntem yöntemidir.Bu özellik, yani "yeni yöntemler varolan türlerini bunları gerçekten değiştirmeden eklemek," sağlar.Standart sorgu işleçleri sağlayan uzantısı yöntemleri konusunda LINQ işlevselliğini uygulayan herhangi bir türü için sorgu IEnumerable.

Daha fazla bilgi için bkz. Genişletme Yöntemleri (C# Programlama Kılavuzu).

Lambda İfadeleri

Lambda ifade = kullanan bir satır içi işlevi olan > Operatör ayırmak için giriş parametrelerinden işlev gövdesi ve derleme zamanında bir temsilci veya bir deyim ağacına dönüştürülür.De LINQ standart sorgu işleçleri için doğrudan yöntem çağrıları yaptığınızda, programlama, lambda ifadeleri karşılaşırsınız.

Daha fazla bilgi için bkz:

Otomatik uygulanan özellikler

Otomatik uygulanan özellikler, özellik bildirimi daha kısa hale getirir.Aşağıdaki örnekte gösterildiği gibi bir özellik bildirdiğinizde derleyici özellik alıcı ve ayarlayıcı erişilemeyen dışında özel, anonim yedekleme alanı oluşturur.

public string Name {get; set;}

Daha fazla bilgi için bkz. Otomatik Uygulanan Özellikler (C# Programlama Kılavuzu).

Ayrıca bkz.

Kavramlar

LINQ'i Destekleyen Visual Basic Özellikleri

Diğer Kaynaklar

LINQ (Dil ile Tümleşik Sorgu)