List<int> ls1= new List<int>();
List<int> ls2= new List<int>();
List<int> ls3= new List<int>();
List<int> ls4= new List<int>(); c# list'ler hakkında
10
●344
- 24-08-2019, 00:36:49Merhabalar. 4 adet list var . amacım bunlardan hangisinin eleman sayısının fazla olduğunu bulmak . kısa yoldan bunu nasıl bulabilirim. Teşekürler.
- 24-08-2019, 01:06:00
List<int> ls1 = new List<int>() { 1,2 }; List<int> ls2 = new List<int>() { 1,2,3 }; List<int> ls3 = new List<int>() { 1,2,3,4,5 }; List<int> ls4 = new List<int>() { 1,2,3,4 }; List<List<int>> listeler = new List<List<int>>() { ls1, ls2, ls3, ls4 }; var enFazlaElemanli = listeler.OrderByDescending(x => x.Count).First(); - 24-08-2019, 01:09:19@cdermnx hocam list.count biliyorum. fakat benim istediğim hangisinin elaman sayısı fazla.cdermnx adlı üyeden alıntı: mesajı görüntüle
ls1.count() // 100 ls2.count() // 200 ls3.count() // 75 ls4.count() // 12
bu şekilde akdık diyelim hocam en fazla elaman sayısı hangisi onu bulmak istiyorum .sonuc olarak bana "ls2" en fazla elamana sahip demesi gerekiyor - 24-08-2019, 01:33:48Kimlik doğrulama veya yönetimden onay bekliyor.Bu şekilde daha anlaşılır olur sanırım;
public static List<int> Compare(params IList<int>[] lists) { List<int> comp = new List<int>(); foreach(var list in lists){ if(list.Count() > comp.Count()) comp=list.ToList(); } return comp; }Şöyle çağırabilirsin;
List<int> buyuk = Compare(ls1,ls2,ls3,ls4);
- 24-08-2019, 02:22:34Hocam yazdığınız kodda tüm list'leri tek listte topluyor buda benim işime yaramıyor .rshcoosl adlı üyeden alıntı: mesajı görüntüle
istediğim şey hangi list'in adet sayısı fazla ise mesajBox ile bildirsin gibi

Malesef hocam olmadı . Büyük list'in içine tüm elemanları atıyor buda benim işime yaramıyorNetBilgi adlı üyeden alıntı: mesajı görüntüle
hangisinin adet sayısı fazla ise onu bildirmesi gerek
cdermnx adlı üyeden alıntı: mesajı görüntüle
Hocam burada sadece ls1 kontrolunu sağlıyabiliyoruz. aynı kodları ls2,ls3,ls4 içinde yapılabılır fakat eğer ls2 ile ls4 aynı diyelim sonuç vermiyecektir - 24-08-2019, 04:22:51Fonksiyonu sizin için bu şekilde düzenledim;
public static int Compare(params IList<int>[] lists) { var max = lists.Max(x=>x.Count()); for(int i=0;i<lists.Count();i++) { if(lists[i].Count == max) return i; } return 0; }Şöyle kullanabilirsiniz;
List<int> ls1 = new List<int>() { 1,2 }; List<int> ls2 = new List<int>() { 1,2,3 }; List<int> ls3 = new List<int>() { 1,2,3,4,5 }; List<int> ls4 = new List<int>() { 1,2,3,4 }; List<string> listexp = new List<string>() {"ls1", "ls2", "ls3", "ls4"}; Console.WriteLine(listexp[Compare(ls1, ls2, ls3, ls4)]); - 24-08-2019, 04:52:45Kimlik doğrulama veya yönetimden onay bekliyor.
List<int> ls1 = new List<int>() { 1 }; List<int> ls2 = new List<int>() { 1, 2, 3 }; List<int> ls3 = new List<int>() { 1, 2, 3, 4, 5 }; List<int> ls4 = new List<int>() { 1, 2, 3, 4 }; int[] sayi = new int[4]; sayi[0] = ls1.Count; sayi[1] = ls2.Count; sayi[2] = ls3.Count; sayi[3] = ls4.Count; int min = sayi[0]; int maks = sayi[0]; for (int i = 1; i < sayi.Length; i++) { if (min > sayi[i]) min = sayi[i]; if (maks < sayi[i]) maks = sayi[i]; } if (ls1.Count == maks) { MessageBox.Show("En çok elemanı olan liste : " + maks + " adet eleman ile ls1 listesi"); } if (ls2.Count == maks) { MessageBox.Show("En çok elemanı olan liste : " + maks + " adet eleman ile ls2 listesi"); } if (ls3.Count == maks) { MessageBox.Show("En çok elemanı olan liste : " + maks + " adet eleman ile ls3 listesi"); } if (ls4.Count == maks) { MessageBox.Show("En çok elemanı olan liste : " + maks + " adet eleman ile ls4 listesi"); }

hangisinin adet sayısı fazla ise onu bildirmesi gerek