Dizi ve Listeleri Düzenlemek için Genel Temsilciler

Bu konu, bir dizi veya koleksiyonun öğeleri üzerinde gerçekleştirilecek dönüştürmeler, arama önkoşulları ve eylemler için genel temsilcilere genel bir bakış sağlar.

Dizi ve Listeleri Düzenlemek için Genel Temsilciler

Genel temsilci, Action<T> belirtilen türde bir öğe üzerinde bazı eylemler gerçekleştiren bir yöntemi temsil eder. öğesinde istenen eylemi gerçekleştiren bir yöntem oluşturabilir, bu yöntemi temsil etmek için temsilcinin Action<T> bir örneğini oluşturabilir ve ardından diziyi ve temsilciyi statik genel yönteme Array.ForEach geçirebilirsiniz. yöntemi, dizinin her öğesi için çağrılır.

Genel List<T> sınıfı, temsilciyi Action<T> kullanan bir ForEach yöntem de sağlar. Bu yöntem genel değildir.

Not

Bu, genel türler ve yöntemler hakkında ilginç bir noktaya işaret eder. Yöntemin Array.ForEach statik (Shared Visual Basic'te) ve genel olması gerekir çünkü Array genel bir tür değildir; üzerinde çalışılacak bir tür Array.ForEach belirtebilmenizin tek nedeni yöntemin kendi tür parametre listesine sahip olmasıdır. Buna karşılık, genel List<T>.ForEach olmayan yöntem genel sınıfına List<T>aittir, bu nedenle yalnızca sınıfının tür parametresini kullanır. sınıfı kesin olarak yazıldığı için yöntemi bir örnek yöntemi olabilir.

Genel temsilci, Predicate<T> belirli bir öğenin tanımladığınız ölçütleri karşılayıp karşılamadığını belirleyen bir yöntemi temsil eder. Bir öğeyi veya öğe kümesini aramak için aşağıdaki statik genel yöntemleriyle Array kullanabilirsiniz: Exists, Find, FindAll, FindIndex, , FindLast, FindLastIndexve TrueForAll.

Predicate<T> ayrıca, genel sınıfın ilgili genel olmayan örnek yöntemleriyle List<T> de çalışır.

Genel Comparison<T> temsilci, yerel sıralama düzeni olmayan dizi veya liste öğeleri için bir sıralama düzeni sağlamanıza veya yerel sıralama düzenini geçersiz kılmanıza olanak tanır. Karşılaştırmayı gerçekleştiren bir yöntem oluşturun, yönteminizi temsil etmek için temsilcinin Comparison<T> bir örneğini oluşturun ve ardından diziyi ve temsilciyi statik genel yönteme Array.Sort<T>(T[], Comparison<T>) geçirin. Genel List<T> sınıf, karşılık gelen örnek yöntemi aşırı yüklemesini sağlar. List<T>.Sort(Comparison<T>)

Genel Converter<TInput,TOutput> temsilci, iki tür arasında bir dönüştürme tanımlamanıza ve bir tür dizisini diğerinin dizisine dönüştürmenize veya bir türün listesini diğerinin listesine dönüştürmenize olanak tanır. Varolan listenin öğelerini yeni bir türe dönüştüren bir yöntem oluşturun, yöntemi temsil eden bir temsilci örneği oluşturun ve genel statik yöntemi kullanarak özgün diziden yeni türde bir dizi veya List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) özgün listeden yeni türün listesini oluşturmak için genel örnek yöntemini kullanınArray.ConvertAll.

Temsilcileri Zincirleme

Bu temsilcileri kullanan yöntemlerin çoğu, başka bir yönteme geçirilebilen bir dizi veya liste döndürür. Örneğin, bir dizinin belirli öğelerini seçmek, bu öğeleri yeni bir türe dönüştürmek ve bunları yeni bir diziye kaydetmek istiyorsanız, genel yöntem tarafından FindAll döndürülen diziyi genel yönteme ConvertAll geçirebilirsiniz. Yeni öğe türünde doğal sıralama düzeni yoksa, genel yöntem tarafından ConvertAll döndürülen diziyi genel yönteme Sort<T>(T[], Comparison<T>) geçirebilirsiniz.

Ayrıca bkz.