No to... skoro posortowałeś tą listę tutaj:
for (int i = 1; i < lenght; i++)
{
for (int l = lenght - 1; l >= i; l--)
{
if (lista2[l - 1].lista.Average() > lista2[l].lista.Average())
{
RandomNumber temp = lista2[l];
lista2[l] = lista2[l-1];
lista2[l - 1] = temp;
}
}
Console.WriteLine(lista2[i].lista.Average());
}
(bo to jest ręcznie napisane sortowanie bąbelkowe, nie?)
Więc lista o najmniejszej i największej średniej to po prostu pierwsza i ostatnia lista:
slownik.Add(Srednia.sredniaNajnizsza, lista2.First());
slownik.Add(Srednia.sredniaNajwyzsza, lista2.Last());
foreach(var item in slownik)
{
Console.WriteLine(item.Key + " : " +item.Value.lista.Average());
}
i tyle.
A przy okazji:
private int i;
To tylko bałagani, bo miesza się ze zmiennymi w funkcji,
class Dictionary : RandomNumber
i nie wiem po co to dziedziczenie,
for (int k = 0; k < lenght; k++)
{
RandomNumber losoweliczby = lista2[k];
losoweliczby.lista.Average();
}
A te linie kodu... zupełnie nic nie robią.
Plus:
Random rng = new Random();
Zrób jeden (statyczny) Random, bo tutaj jest ryzyko że będą Ci się liczby losowe powtarzały.