私は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};
私は、各アレイ内の文字列のすべての組み合わせのペアのうち、複合キーを作成したいと思います。
aa aa
aa bb
aa cc
bb aa
bb bb
bb cc
cc aa
cc bb
cc cc
と二番目の配列のために:たとえば、私のような... compositeKeyは、配列1 string[]
のすべての順列とDictionary<string, string>
のthats埋めるしたい
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
を完全に間違って使用していますか?
編集:誤った方法で辞書を使用しようとしているようです。ここで使用すべきデータ型の型に関する提案はありますか?
アドバイスありがとうございます。
辞書には、ユニークなキーを持っている必要があります。同じキーが複数回使用されています。だから辞書は辞書> –
jdweng
@jdwengでなければなりませんリストは私のコンポジットキーに本当に欲しくないですか?私はDictionary 、decimal>にコンポジットキー(Dictionary )の形で2つの文字列を入れ、そこから10進数を取得したいと思います。 –
Jamin
@jdweng私は、私が想定していない方法で辞書を使用しようとしています。あなたが提案する別のデータ型か、Dictionary>メソッドの使用例がありますか? –
Jamin