C# Listesi<> x belirleyin y | Netgez.com
SORU
14 Kasım 2008, Cuma


C# Listesi<> x belirleyin y

List<> OrderBy Alphabetical Order bir element, sıralamak istiyoruz, sonra da diğerine benzer. fonksiyonel eşdeğer elde etmek istiyoruz

SELECT * from Table ORDER BY x, y  

Sıralama fonksiyonları bir dizi içeren bir sınıf var, ve hiçbir sorunları bir eleman tarafından sıralama var.
Örneğin:

public class MyClass {
    public int x;
    public int y;
}  

List<MyClass> MyList;

public void SortList() {
    MyList.Sort( MySortingFunction );
}

Ve listedeki ÅŸu var:

Unsorted     Sorted(x)     Desired
---------    ---------    ---------
ID   x  y    ID   x  y    ID   x  y
[0]  0  1    [2]  0  2    [0]  0  1
[1]  1  1    [0]  0  1    [2]  0  2
[2]  0  2    [1]  1  1    [1]  1  1
[3]  1  2    [3]  1  2    [3]  1  2

Kararlı sıralama tercih, ancak gerekli değildir olacaktır. Çözüm için çalışıyor .Net 2.0 açığız.

CEVAP
14 Kasım 2008, Cuma


Eğer tüm üyeler karşılaştırırsanız istikrarlı bir sıralama gerekmez unutmayın. 2.0 çözüm istendiği gibi, bu gibi görünebilir:

 public void SortList() {
     MyList.Sort(delegate(MyClass a, MyClass b)
     {
         int xdiff = a.x.CompareTo(b.x);
         if (xdiff != 0) return xdiff;
         else return a.y.CompareTo(b.y);
     });
 }

Bu 2.0 çözümü hala popüler 3.5 Seri çözüm üzerinde tercih edilir unutmayın, yerinde bir sıralama gerçekleştirir ve Seri yaklaşımı(n) depolama gereksinimi yok. Tercih ettiğiniz sürece orijinal Liste tabii ki el değmemiş olmak nesne.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • National Geographic

    National Geo

    7 Mayıs 2006