2016-04-09 26 views
0

bir listede en sık görülen maddeben bu tabloda bir listesi var

public class Fruits 
    { 

     public int ID { get; set; } 

     public string Name{ get; set; } 
} 
bana bu sonucun ben görünen kod nedir bu tabloda en sık meyve ne olduğunu bilmek istiyorum

kullanıyorum, bu bir hata var mı?

+1

@DrewKennedy Doğru yanıtınız olduğundan, bir yorumdan ziyade bir yanıt oluşturmanız gerekir. – gretro

+0

Turuncu Portakal Limon My kötü @gretro bana Sultan

+0

birşeyler söylemek orada elma elma elma elma elma istiyorum. Cevap için zamanım olacağını düşünmedim. –

cevap

0

Drew, sen dayansın ve sonra OrderByDescending (ID çoğu veri yapıları benzersiz olma eğilimindedir beri, Ad yaptım) umurumda değerine GroupBy istediğiniz yorumları söylediği gibi

public class Fruits 
    { 

     public int ID { get; set; } 

     public string Name{ get; set; } 
} 


var Val = fruitList.GroupBy(x => x.ID, 
         (key, y) => y.MaxBy(x => x.ID).value) 
0

deneyin sayımda.

using System; 
using System.Collections.Generic; 
using System.Linq; 

public class Program 
{ 
    public static void Main() 
    { 
     var fruits = new List<Fruit> { new Fruit { ID = 1, Name = "Apple" }, new Fruit { ID = 2, Name = "Apple" }, new Fruit { ID = 3, Name = "Pear" } }; 
     var most = fruits.GroupBy(f => f.Name).OrderByDescending(group => group.Count()); 
     Console.WriteLine(most.First().Key); 
    } 
} 

public class Fruit 
{ 
    public int ID { get; set; } 
    public string Name{ get; set; } 
} 
+0

Bu durumda, masada ne olduğunu biliyordum ve bir elma ya da bir muz olduğunu bilmiyorsanız, en sık ne olduğunu bilmek istiyorum. – Sultan

+0

@ سلطاناليامي - Ne demek istediğinizden emin değilim. Bu, ne olduğunu bilmeden ne istediğinizi size söyleyecektir. Burada görebilmemin tek sebebi test verilerini göstermem gerekiyor. – JasCav

1

listenizde en mevcut öğenin adını almak istiyorsanız, ilk olarak en gerçekleşiyor kimliği bulmak:

var fruitAnon = fruits 
     .GroupBy(item => item.ID) 
     .Select(item => new { 
      Key = item.Key, 
      Count = item.Count() 
     }) 
     .OrderByDescending(item => item.Count) 
     .FirstOrDefault(); 

Bu olacak bir anonim nesne döndürür En sık id ve count, listede kaç kez olduğunu gösterir. Daha sonra o nesnenin adını bulabilirsiniz: Sonra

List<Fruits> fruits = new List<Fruits>() { 
    new Fruits { ID = 1, Name = "Apple" }, 
    new Fruits { ID = 1, Name = "Apple" }, 
    new Fruits { ID = 2, Name = "Orange" }, 
    new Fruits { ID = 2, Name = "Orange" }, 
    new Fruits { ID = 2, Name = "Orange" }, 
    new Fruits { ID = 2, Name = "Orange" } 
}; 

:

Console.WriteLine(fruit.Name); 

Orange yazdırmak misiniz

var fruit = fruits.FirstOrDefault(x => x.ID == fruitAnon.Key); 

böyle bir liste olsaydı.