检查哪个对象最常出现在列表中C#

时间:2019-06-01 15:32:20

标签: c# arrays .net list

所以我有一个临时ListObject列表仅用于检查状况

class ListObject
{
    public string Key { get; set; }
    public int Value { get; set; }

    public void Convert(string str)
    {
        Key = str;
    }
}

并且我正在写一个方法来检查哪个名称在另一个对象列表中最多出现。 ListObject.Key 获得分配的名称,而 ListObject.Value 存储出现的次数。我想检查名称是否已经从保存值的列表中存储了,如果是,则增加存储名称的ListObject字段的值。 问题是我不知道如何指出应增加的领域。我需要类似list[*index of the wanted name].Value += 1;的东西,我应该如何指向索引?我应该使用KeyValue对代替我的 ListObject 类吗?

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试重新发明Dictionary<TKey,TValue>

var frequencyMap = new Dictionary<string,int>();
foreach(string item in itemList)
{
    if (!frequencyMap.ContainsKey(item))
        frequencyMap.Add(item, 0);

    frequencyMap[item] += 1;
}