У меня есть класс C, который имеет список [B], а каждый имеет словарь [A, двойной]макс за единицу в списке элементов
нужно выбрать макс (дважды) в расчете на одну в настоящее время я делаю:
Dictionary<A,double> rtn = new Dictionary<A,double>();
foreach (var B in C.Bs)
{
foreach (var kvpA in B.A_list.Where(a => !rtn.Keys.ToList().Contains(a)))
{
rtn.Add(kvpA.Key, kvpA.Value);
}
foreach(var kvpA in B.A_list.Where(a => rtn.Keys.Contains(a) && a.Value>rtn[a]))
{
rtn[kvpA.Key] = kvpA.Value;
}
}
return rtn;
Однако это выглядит довольно грязный, поэтому я пытаюсь построить лучший Linq запрос, но не могу понять синтаксис. любая помощь?
_ "... max (int) per A ..." _ О чем вы говорите? –
'B имеет словарь [A, double]' - это свойство 'A_list'? Если это так, этот код не компилируется: 'B.A_list.Where (a => rtn.Keys.Contains (a)' – GolfWolf
вы можете показать определения для классов 'A',' B' и 'C'? – GolfWolf