Cevap Geçmişi
«« Soruya geri dön
16.01.17 22:00
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ı: B\A={5,6}
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
31.10.16 22:13
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ı: B\A={5,6}
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
31.10.16 19:09
5,6 sonucunu veren fonksiyon: int[] kumeDegili(int[] a, int[] b)
{
// Diziye ekleme yapılamadığından 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();
}
}
}
Ekleyen: cevapsitesi
En fazla 3 eski durum gösterilir.