好的,我正在查看某个值的文档,如果它们匹配此数组中的值,那么我想增加该特定值的计数。我这样做了:
public static class Hex
{
//example only, not real code
public static string[] name = {"aba", "bcd", "c"};
public static int[] count = new int[name.Length];
}
但似乎必须有更好/更简单的方法。也许是一系列元组?我只是不知道。我知道这是一个非常简单的问题,我只是想不出如何用两个字符串来比较1和int计数。谢谢!
答案 0 :(得分:1)
使用Dictionary<TKey, TValue> Class
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary.Add("aba", 0);
dictionary.Add("bcd", 0);
dictionary.Add("c", 0);
稍后您可以在Dictionary.Keys
中搜索该单词并递增计数器。
答案 1 :(得分:1)
Dictionary<string, int>
怎么样?
答案 2 :(得分:0)
使用Dictionary
:
Dictionary<string, int> matches = new Dictionary<string, int>();
foreach(var item in document)
{
if(matches.ContainsKey(item.stringvalue))
{
matches[item.stringvalue] += 1;
}
else
{
matches.Add(item.stringvalue, 1);
}
}
答案 3 :(得分:0)
您可以使用字典:
Dictionary<string, int> dicObj = new Dictionary<string, int>();
dicObj.Add("abc", 0);
…
之后,您可以使用dicObj.ContainsKey
搜索此中的特定单词,然后执行业务逻辑。
答案 4 :(得分:0)
我会使用Dictionary<string, int>
,因为它非常有效:
public static class Hex
{
static Hex()
{
_HexNameCounts = new Dictionary<string, int>()
{
{"aba", 0}, {"bcd", 0}, {"c", 0}
};
}
private static Dictionary<string, int> _HexNameCounts = null;
public static int? GetHexNameCount(string name)
{
int count;
if (_HexNameCounts.TryGetValue(name, out count))
return count;
return null;
}
public static void SetHexNameCount(string name, int count)
{
_HexNameCounts[name] = count;
}
public static void IncreaseHexNameCount(string name, int count = 1)
{
int c = GetHexNameCount(name) ?? 0;
SetHexNameCount(name, c + count);
}
}
现在您可以这样使用它:
int? abaCount = Hex.GetHexNameCount("aba");
// or
Hex.SetHexNameCount("c", 3);
// or
Hex.IncreaseHexNameCount("foo", 10);
将复杂性封装在方法中总是好的。这使代码更具可读性和安全性。
我使用Nullable<int>
来处理名称是新的情况。