Zėŋōfōbìå

14 dicembre 2007

Natural Sort in C#

Filed under: C#, informatica — Tag: — Zeno @ 14:20

Natural Sort in sei righe, tratto da: http://www.nbdtech.com/Blog/

Il Natural Sort è l’ordinamento delle stringhe che ci appare naturale quando le stringhe contengono numeri.

Normalmente, infatti, ordinando secondo lo standard alfanumerico una lista che contenga stringhe nella forma : “1_elem”,”2_elem”, … ,”100_elem” avviene che il 100_elem viene anteposto al 2_elem, fornendo un’ordinamento diverso da quello che ci saremmo aspettati.

La soluzione più semplice che ho trovato è la seguente:

  1 [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
  2 private static extern int StrCmpLogicalW(string psz1, string psz2);

Una volta richiamato il collegamento alla funzione esterna si può passare al Array.Sort:

  3 Array.Sort(myStringArray, delegate(string l, string r)
  4 {
  5       return StrCmpLogicalW(l, r);
  6 });
Annunci

Lascia un commento »

Non c'è ancora nessun commento.

RSS feed for comments on this post. TrackBack URI

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.

%d blogger hanno fatto clic su Mi Piace per questo: