【发布时间】:2017-12-28 10:06:45
【问题描述】:
我有以下字典:
Dictionary<int, List<myObject>>
我想获取 myObject 的所有可能组合,并且每个键只获取一个 myObject 实例。 key 的数量和每个 key 的 myObject 数量会发生变化。
例如,如果我有以下字典:
{
{ 0, {A1, A2},
{ 1, {B1},
{ 2, {C1, C2},
}
我想要:
{A1, B1, C1}, {A1, B1, C2}, {A2, B1, C1}, {A2, B1, C2}
使用嵌套的 foreach 很容易做到这一点,如果列表的数量始终相同,但是当它发生变化时,我找不到一个简单的方法。
知道怎么做吗?
编辑: 字典不用于其他任何用途。
硬编码的嵌套 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 个键的场景,它不是动态的,如果字典中有更多的键,它将不起作用或键不同。
【问题讨论】:
-
所以,为了清楚起见,字典键不用于任何事情?
标签: c#