からすべてのユニークな組み合わせを生成: Dictionary<int, List<myObject>>
は、私は、次の辞書持っている辞書<int, List<T>>
を私はmyObjectというの全ての組み合わせpossiblesを取得し、キーごとに1つだけmyObjectというインスタンスを服用したいと思います。キーの数とキーあたりのmyObjectの数が変わります。
したがって、一例として、私は、次の辞書がある場合:
{
{ 0, {A1, A2},
{ 1, {B1},
{ 2, {C1, C2},
}
を私がしたい:
{A1、B1、C1}、{A1、B1、C2}、{ A2、B1、C1}、{A2、B1、C2}
ネストされたforeachでこれを行うのは簡単です。リストの数は常に同じですが、変更しても簡単な方法は見つけられませんこれを行うの。
どのようにすればいいですか?
編集: 辞書は他の目的では使用されません。
harcodedネストされたforeachのアプローチは、(擬似コード)のようになります。
var result = new List<List<myObject>>
foreach myObjectA in myListForKey(0)
foreach myObjectB in myListForKey(1)
foreach myObjectC in myListForKey(2)
result.add(new list<myObject>{myObjectA , myObjectB, myObjectC })
このアプローチの問題は、ここで私が唯一の3つのキーのためのシナリオを扱うことができるということである複数のキーそれが存在する場合、それは、ダイナミックではありませんそれは辞書ではうまくいかない、あるいはキーが違うということです。
辞書キーは何のためにも使用されていません。 – Magnetron