2008. április 2., szerda

Quick-n-dirty megoldás tömb rendezésére Lambda kifejezéssel

A napokban egy könyvtárban együtt levő fájlokkal kellett dolgoznom. Ha nem csak a fájlnevekre van szükségünk, akkor ennek legegyszerűbb módja a DirectoryInfo objektum GetFiles metódusának használata.

private DirectoryInfo mPictureDir;
....
....
FileInfo[] fileEntries = mPictureDir.GetFiles(mSearchPattern);
Igen ám, de ez a tömb egyáltalán nem biztos, hogy a nekünk megfelelő módon rendezett, így rászorolunk az Array.Sort használatára. Jelen esetben név szerint szeretném rendeznia tömböt.

Mit is csináltunk korábban egy C# 2.0-át használó alkalmazásban?
Array.Sort(fileEntries, delegate(FileInfo x, FileInfo y)
{
return x.FullName.CompareTo(y.FullName);
});
Ez a C# 3.0 alatt a lambda kifejezések jóvoltából valóban QUICK módon leírható:

Array.Sort(fileEntries,(x,y) => x.FullName.CompareTo(y.FullName)) ;
Hasznos kis jószág ez, hiába...
A lambda kifejezéseknek már magyarul is van némi irodalma.

Nincsenek megjegyzések: