.net Linq ile String’i Alfabetik Sıralama

.net’in içerisinde gelen sıralama algoritması maalesef sıralanacak kelimelerin uzunluğunu kontrol etmeden doğrudan alfabetik sıralama yapıyor. Bu da harf ve sayı karışık olan metinleri sıralarken yanlış sıralamaya neden oluyor. Bu yaklaşımın önüne geçmek için Natural Comparer adında bir sınıf kullanacağız.
Örneğin veritabanımızda bir dokuman listemiz olsun:

Bu listeyi .OrderBy(t=>t.dokumankodu) diyerek sıraladığımızda:

Şeklinde sıralayacaktır. Bu aslında beklenen bir davranış çünkü n harfinden sonra gelen sayılar 1-1-1-3-9 şeklinde. Bunu düzeltmek için şu sınıfı kullanıyoruz:

Bu sınıfı NaturalSortComparer.cs adında kaydederek projemize dahil ediyoruz. Artık order by kullanırken bu sıralama sınıfını parametre olarak göndereceğiz:

Artık sıralamamız şu şekilde olacak:

Faydalı olması dileğiyle.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir