维持对象计数的最佳方法



我有一组对象(假设它们都是不同种类的动物---熊,熊,狮子,老虎,熊)

维持每只动物的计数的最佳方法是什么?

我尝试使用字典,但" int"当然是只读的。

理想情况下,我想要动物["熊"] = 2,动物["狮子"] = 1,动物[" tiger"] = 1等。

我尝试使用字典,但int当然是只读的。

int是一种值类型,不应阻止您:您只需要按照不变的对象作为需要更改的字典值来对待它,即通过重新分配它们。

这是如何在字典中增加计数的示例:

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);
}

您可以尝试这样的东西

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());

您还可以制作动物的收集或列表,并通过其价值类型获得计数。由于尚不清楚您的班级看起来像我在字符串中给出了示例。

相关内容

最新更新