我希望能夠獲取列表中某些類型的事物的百分比。使用LINQ獲取列表中的TypeOf項目的百分比
說我有動物名單,但名單裏面我有貓,狗和蛇:
List<Animal> animals = new List<Animal>{
new Cat { Name="Cuddles", Sound=Sound.Meow, Age=3 },
new Dog { Name="Spot", Sound=Sound.Bark, Age=7 },
new Cat { Name="Karma", Sound=Sound.Meow, Age=10 },
new Snake { Name="Nagini", Sound=Sound.Hiss, Age=1 },
new Dog { Name="Sparky", Sound=Sound.Bark, Age=4},
new Cat { Name="Matty", Sound=Sound.Meow, Age=15}
};
而且我希望能夠得到這些動物的百分比,因此可能的結果設置將是:
Cats: 0.50
Dogs: 0.35
Snakes: 0.15
但我不知道如何得到這種類型的結果集。特別是如果我只是想獲得貓的百分比。
我知道我需要使用list.OfType<Cat>()
來拉貓的列表,但這也是我無法獲得貓的百分比,因爲我不能使用.Sum()或.Average()。
任何想法?
被告知;到目前爲止,所有發佈的答案都包含可能的零除異常。 – Stefan 2015-02-10 10:18:15