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ı: