.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.

Beğen  
Yazar

Makine mühendisliği mezunu bir yazılım uzmanıyım. Otomasyon ve back-end programlama üzerine çalışmaktayım. .net, MVC, ve PHP ile web, masaüstü, ve mobil uygulamalar geliştirmekteyim.

Bir Cevap Yazın

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