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