我有一套物品(说它们都是不同种类的动物---熊,熊,狮子,老虎,熊)
维持每只动物的计数的最佳方法是什么?
我尝试使用Dictionary但“int”当然是只读的。
理想情况下,我想要动物[“熊”] = 2,动物[“狮子”] = 1,动物[“虎”] = 1等。
答案 0 :(得分:2)
作为值类型的我尝试使用词典,但
int
当然是只读的。
int
不应该阻止您:当您将不可变对象用作需要更改的字典值时,只需通过重新分配它们就可以将其视为对待它的方式。 / p>
以下是如何在字典中增加计数的示例:
var counts = new Dictionary<Animal,int>();
Animal someAnimal = ... // Get some animal
int currentCount;
if (counts.TryGetValue(someAnimal, out currentCount)) {
counts[someAnimal] = currentCount+1;
} else {
counts.Add(someAnimal, 1);
}
答案 1 :(得分:0)
您可以尝试这样的事情
string[] animals = new string[] { "Bear", "Bear", "Lion", "Tiger", "Bear" };
var groups = animals.GroupBy(v => v);
foreach(var group in groups)
Console.WriteLine("[{0}] = {1}", group.Key, group.Count());
您还可以制作动物集合或列表,并按其值类型计算。由于我不清楚你的班级是怎样的,我已经用字符串给出了例子。