Это пример в C #
public Dictionary<int, int> SortList(string text)
{
Dictionary<int, int> sortedArray = new Dictionary<int, int>();
List<int> array = new List<int>() { 1, 2, 2, 2, 5, 4 };
for (int i = 0; i < array.Count; i++)
{
if (DoesExsist(sortedArray, array[i]))
{
sortedArray[array[i]]++;
}
else
{
sortedArray.Add(array[i], 1);
}
}
return sortedArray;
}
private bool DoesExsist(Dictionary<int, int> array, int keyvalue)
{
foreach (KeyValuePair<int, int> item in array)
{
if (item.Key == keyvalue)
{
return true;
}
}
return false;
}
Не проверял это. Но должно сработать или хотя бы дать вам идею.