LINQ Except kullanarak şöyle yapılabilir:
- int[] a = { 1, 2, 3, 4 };
- int[] b = { 3, 4, 5, 6 };
- int[] c = b.Except(a).ToArray();
- Console.Write(String.Join(",", c));
veya klasik yoldan 5,6 sonucunu veren fonksiyon:
- int[] kumeDegili(int[] a, int[] b)
- {
- // Diziye ekleme yapılamadığından bulunan elemanları tutacak ve
- // döndürmeden önce diziye çevrilecek bir List<int> oluştur.
- List<int> donus = new List<int>();
- int ind;
- // b'nin elemanlarını tek tek kontrol etmek için bir döngü yap.
- for (int i = 0; i < b.Length; i++)
- {
- // b'nin i. elemanı a dizisinde var mı bak.
- ind = Array.IndexOf(a, b[i]);
- // Dizide yoksa donus listesine b'nin i. elemanını ekle.
- if (ind == -1)
- donus.Add(b[i]);
- }
- return donus.ToArray(); // List<int> donus değişkeninin değerlerinden bir dizi oluştur (List<int> olduğundan int[] oluşur).
- }
Fonksiyonu kullanan örnek konsol uygulaması:
- using System;
- namespace Kumeler
- {
- class Kume
- {
- static void Main()
- {
- int[] a = new int[] { 1, 2, 3, 4 };
- int[] b = new int[] { 3, 4, 5, 6 };
- int[] sonuc = kumeDegili(a, b);
- Console.Write("B\\A={");
- Console.Write(String.Join(",", sonuc));
- Console.WriteLine("}");
- Console.ReadKey();
- }
- }
- }
Örnek konsol uygulamasının çıktısı: