Cześć, mam problem ze słownikiem, wiem jak zwrócić wartość która się powtarza najwięcej razy, problem gdy dwie wartości powtarzają się tyle samo razy i chcę zwrócić jedną z nich, napisałem taki kod i on działa ale nie do końca tak jak powinien, ma ktoś pomysł jak przerobić to w sposób taki aby przy danych wejściowych np (1,1,2,2) wylosował mi wartość 1 lub 2 a nie za kazdym razem brał 1? wartości to liczby całkowite
int[] input = { tab1[0].R, tab1[1].R, tab1[2].R, tab1[3].R };
var dict = new Dictionary<int, int>();
foreach (var o in input)
if (dict.ContainsKey(o))
dict[o]++;
else
dict[o] = 1;
int temp = 0;
int temp2 = 0;
foreach (var d in dict)
if (d.Value > temp && d.Key > 0) { temp = d.Value; temp2 = d.Key; }
tab[i, j].R2 = temp2;