10 Aralık 2013 Salı

Distinct İslemi Yapmanin 4 Yolu


Merhaba Arkadaşlar,

Yazılım geliştirirken zaman zaman eldeki koleksiyon tipindeki veriler üzerinde kolon(lar) bazında distinct(farklı, ayrı) işlemiyle benzer kayıtları filtrelememiz gerekebilir. Sql tarafında bu işlem için "distinct" komutu vardır; .net tarafında Enumerable sınıfı içerisindeki Distinct() genişletme metoduyla veya çeşitli linq sorgularıyla bu işlem kotarılabilir. İşin özünde nesnelerin farklılığını saptama olduğundan, eldeki çözümler artalanda nesnelerin kimlik niteliği olan hasCode'a dayanır. Tüm sınıflar örtülü olarak Object sınıfından kalıtıldıkları için de her nesnenin Object sınıfı üzerinden gelen GetHashCode() metoduyla nesnenin hash koduna ulaşılıp eş(it)lik kontrolü yapılabilir.