首页 > 解决方案 > 创建一个数组或列表来计算值

问题描述

我想计算关联数组中的项目。我已经编写了一小段代码,但现在我认为它不起作用。我应该使用什么策略?

我创建了一个类

public class itemsList
{
     public string itemName;
     public int itemCount;
}

计算代码如下(items在下面的代码中考虑一个数组)

foreach (var item in items)
{
     //this is pseudo, I want help in this
     if (itemsList.Contain("itemName", item)
          itemsList[item].itemCount++;
     else
          itemsList.Add(item, 1);
}

请记住,此数组稍后必须更改为json以下格式。

"apples": 10,
"oranges": 4
....

标签: c#.netarraysarraylist

解决方案


如前所述,Dictionary<TKey, TValue>这是一个更好的选择:

private readonly Dictionary<string, int> ItemsDict = new Dictionary<string, int>();

那么你需要做的就是:

string someItemName = "itemName";

if(!ItemsDict.ContainsKey(someItemName))
{
    ItemsDict.Add(someItemName, 1);
}
else 
{
    ItemsDict[someItemName]++;
}

根据您的需要,您可能还想使用某些类作为值:

public class itemsList
{
     public string itemName;
     public int itemCount;
}

...

private readonly Dictionary<string, itemsList> ItemsDict = new Dictionary<string, itemsList>();
// here we add an object
ItemsDict.Add(someItemName, myItem);

推荐阅读