I have this one problem. There is a string 

```
string [5] names = { "John", "Sam", "Harry", "Sam", "John" }

```

I need to find the most common elements in the array. I tried using :

```
string MostCommon = names.GroupBy(v => v)
    .OrderByDescending(g => g.Count())
    .First()
    .Key;

```

Unfortunately it only finds one element, f.e., `MostCommon = John`, and in this case I need not only `John`, but `Sam` too. How could I do that? Maybe LINQ is not necessary in this case?