Dizin sıralama yapmak için yerleşik C# desteği var mı?Dizin tabanlı bir sıralama için C# desteği var mı?
Daha Fazla Detay:
İkili bireysel listelerinde saklanan birkaç veri kümesine sahibim. Bu listeler, her zaman eşit uzunluktadır ve karşılık gelen veri öğelerini içerir, ancak bu listeler dinamik olarak gelir ve gider, bu nedenle sınıfta veya yapıdaki karşılık gelen veri öğelerini temizleyemiyorum. (Ayrıca, bazı eski sorunlar ile uğraşıyorum.)
Bu anahtarlı veri kümelerinden birini sıralayabilmem gerekir.
Bunu yapmanın en iyi yolu düşüncem, bir düzey indirgeme eklemek ve dizin tabanlı bir sıralama kullanmaktır. Bu tür yıllar boyunca kullanılmaktadır.
sıralama bazlı endeksinHızlı tanım:
yapmak "index", anylist[index[N]]
anylist N. öğeyi verir, böylece listeleri ile aynı uzunlukta, sonra sıralama algoritması tamsayılar listesini sıralar ardışık tamsayılar dizisi sıralı olarak. Listelerin kendileri hiçbir zaman yeniden sipariş edilmez.
Dizin sıralama yapmak için yerleşik C# desteği var mı? Onu bulamadım ... bulduğum her şey koleksiyonun kendisini yeniden düzenler. Tahminim destek var ama henüz doğru yere bakmadım.
Windows altında C# .NET 3.5 kullanıyorum. Dizin dizi kurduktan sonra
Wow! Bu harika. Tek bir satırda ihtiyacım olan şeyi yapar. Bunun Linq kullanıyor olması gerektiğini farz ediyorum. Daha önce hiç çalışmadım ve nasıl çalıştığını bilmiyorum ... tahmin etmem gerek. Teşekkürler! –
Hayır, LINQ yoktur, ancak LINQ ile yaygın olarak kullanılan bir lambda ifadesi vardır. – Guffa
Ve diziniz karşılaştırılabilir değilse, onun sadece 1 satır daha: Karşılaştırma karşılaştırıcı = Karşılaştırma .Default; Array.Sort (index, (a, b) => compareer.Compare (dizi [a], dizi [b])); –