我有一个Dictionary<string,string>
即充当另一个复合键Dictionary
。
我也有一些string[]
包含要用作复合键中的必要的字符串数组。
例如:
//Dictionary that will use composite key
Dictionary<Dictionary<string, string>, decimal> lookUpDictionary = new Dictionary<Dictionary<string, string>, decimal>();
//The composite key dictionary
Dictionary<string, string> compositeKey = new Dictionary<string, string>();
//Array containing strings
string[] array1 = { "aa", "bb", "cc" };
string[] array2 = { "xx", "yy", "zz" };
//A container for the array of individual units
string[][] arrayOfArrays = {array1,array2};
我想使该复合键从每个阵列内的每个可能的组合对字符串的。 例如,我想以填充compositeKey那是一个Dictionary<string, string>
与ARRAY1的每个排列string[]
...如:
aa aa
aa bb
aa cc
bb aa
bb bb
bb cc
cc aa
cc bb
cc cc
以及用于所述第二阵列:
xx xx
xx yy
xx zz
yy xx
yy yy
yy zz
zz xx
zz yy
zz zz
我已经试过的是,似乎为获得我想要的排列正确的顺序工作,此嵌套循环算法。
Dictionary<string, string> compositeKey = new Dictionary<string, string>();
string[] array1 = { "aa", "bb", "cc" };
string[] array2 = { "xx", "yy", "zz" };
string[][] arrayOfArrays = {array1,array2};
//for every string[] in the arrayofarrays[][]
foreach(string[] array in arrayOfArrays)
{
//for every string in each of those string[] arrays in the arrayOfArrays[][]
foreach(string word in array)
{
//get every combination including itself
foreach(string wordsPair in array)
{
string[] permutation = { word, wordsPair };
Console.WriteLine(permutation[0] + permutation[1]);
try
{
//compositeKey.Add(permutation[0], permutation[1]);
//string value = compositeKey[permutation[0]];
//Console.WriteLine(value);
}
catch
{
}
}
}
}
在try catch块内的部分中,我有麻烦。 我似乎无法创建compositeKey
正确。 这是因为嵌套循环的,还是我使用dictionarys
完全错误的。
编辑:这似乎是我想使用字典以错误的方式。 是否有应该在此处使用的数据类型的类型的任何建议?
任何建议表示赞赏。