My current code is this. Of course I could write some other code so that this isn't even needed but regardless I'm interested in how to do this in LINQ while preserving similar perf.
private static void SwapDictKeys(Dictionary<DateTime, Dictionary<MyKey, MyValue>> dorg, Dictionary<MyKey, Dictionary<DateTime, MyValue>> dswp)
{
foreach (var dt in dorg)
{
foreach (var mval in dt.Value)
{
Dictionary<DateTime, MyValue> dhlp;
if (!dswp.TryGetValue(mval.Key, out dhlp)) { dhlp = new Dictionary<DateTime, MyValue>(); dswp.Add(mval.Key, dhlp); }
dhlp.Add(dt.Key, mval.Value);
}
}
}
Add your 2¢