Wenn Sie den Namen des Elements erhalten möchten, dass die meisten in der Liste vorhanden ist, zuerst die ID finden, dass die meisten auftritt:
var fruitAnon = fruits
.GroupBy(item => item.ID)
.Select(item => new {
Key = item.Key,
Count = item.Count()
})
.OrderByDescending(item => item.Count)
.FirstOrDefault();
Dies wird ein anonymes Objekt zurück, das die haben häufigste id
, und die count
stellt die Anzahl dar, wie oft es in der Liste existiert. Anschließend können Sie dieses Objekt Namen finden:
var fruit = fruits.FirstOrDefault(x => x.ID == fruitAnon.Key);
Wenn Sie eine Liste wie folgt haben:
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" }
};
Dann:
Console.WriteLine(fruit.Name);
Orange
drucken.
@DrewKennedy Sie sollten eher eine Antwort als einen Kommentar erstellen, weil Sie die richtige Antwort haben. – gretro
Wenn es Apfel Apfel Apfel Apfel Apfel orange orange Lemon Ich möchte mich sagen, etwas –
Sultan
@gretro Mein schlecht. Hätte nicht gedacht, dass ich Zeit für eine Antwort hätte. –