0

我是 ASP.NET C# 的新手。尝试创建一个包含 2 列的 ArrayList,一列用于值(字符串),一列用于计算每个列的数量。在添加值时,我需要搜索 ArrayList 以查找该值是否已存在,如果存在则添加 1,如果不存在,请将其添加到数组并将计数列设置为 1。有人可以提供一些代码示例吗?如果有更好的方法,那么我想听听。

4

2 回答 2

1
private static Dictionary<string, int> values = new Dictionary<string, int>();

private static void Add(string newValue)
{
    if(values.ContainsKey(newValue))
    {
        values[newValue]++;  // Increment count of existing item
    }
    else
    {
        values.Add(newValue, 1);  // Add new item with count 1
    }
}
于 2012-09-26T02:07:40.877 回答
0

如果您只是从字符串列表开始,有很多更简单的方法可以做到这一点。

我可能会在GroupBy这里使用扩展名

List<string> items = GetItems(); // from somewhere
var groups = items.GroupBy(i => i);

var countedItems = groups.Select(g => new 
    { Value = g.First(), HowMany = g.Count() });

然后放入一个 ArrayList,如果你想:

var arrayList = new ArrayList();
foreach (var thing in countedItems)
{
    arrayList.Add(thing.Value + " " thing.HowMany);
}

但我可能更愿意将其放入 aDictionary中,因为您知道每个单词只会映射到一个值 - 它出现的次数。

var result = countedItems.ToDictionary(i => i.Value, i => i.HowMany);
于 2012-09-26T01:35:42.473 回答