public class Solution {
public IList<int> TopKFrequent(int[] nums, int k) {
Dictionary<int, int> numFrequency = new Dictionary<int, int>();
for (int i = 0; i < nums.Length; i++)
{
if (numFrequency.ContainsKey(nums[i]))
numFrequency[nums[i]]++;
else
{
numFrequency.Add(nums[i], 1);
}
}
var results = numFrequency.OrderByDescending(o => o.Value).ToDictionary(o=>o.Key,v=>v.Value);
List<int> kNums = new List<int>();
int j = 0;
foreach(int key in results.Keys)
{
j++;
if (j <= k)
kNums.Add(key);
}
return kNums;
}
}