Ekrem
Kategori:Çalışma Notları
| Tarih:
18.09.2019 23:30:00
Bu yazı 1335 defa okundu
ASP.NET'te Dizileri Karşılaştırma
Siz de benim gibi C# asp.net çalışıyorsanız, linq lambda gibi az zamanda fazlasıyla verimli kod bloklarına aşinasınızdır. Geçen gün iki diziyi karşılaştırayım akabinde kesişimini veya birleşimini hatta kesişim haricindeki elemanlarına ulaşmam icap etti. Derken stackoverflow da aşağıdaki kodlara benzer kod parçacıklarına ulaştım. Önce bunları paylaşayım.
int[] dizi1 = { 1, 2, 3 };
int[] dizi2 = { 2, 3, 4 };
var kesisim= dizi1.Intersect(dizi2);
// Write intersection to screen.
foreach (int eleman in kesisim)
{
Response.Write(eleman); // Çıktımız 2,3
}
Yukardaki kod bloğu kesişimi alıyor. Bununla beraber kesişim haricindeki elemana ulaşmak isterseniz bunun da örneği aşağıda
int[] dizi1= { 1, 2, 3 };
int[] dizi2 = { 2, 3, 4 };
var harici = dizi1.NonIntersect(dizi2);
foreach (int eleman in harici)
{
Response.Write(eleman); // Çıktı: 4
}
Hadi bunları yazdık yazmasına da yazının başında belirttiğim linq'e, lambda'ya ne oldu dersenizi bakın onlar da burada, kesişim için aşağıdaki lambda işimi gördü.
dizi1.Except(dizi2).Union(dizi2.Except(dizi1));
Dizilerin birleşimini yazayım derken, zaten yukarda var, bunu da meraklıların bırakıyorum. LİNQ sorgusuna değinmek istiyordum fakat yazı uzadıkça uzadı. Bu kadarı kâfi.
Meraklılarına iyi çalışmalar dilerim.