В качестве альтернативы ILookup вы можете использовать Dictionary<string,List<int>>
.При добавлении / настройке элемента вы должны проверить, есть ли список для этого ключа или нет:
Dictionary<string,List<int>> MyList;
void AddItem(string key, int value){
List<int> values;
if(!MyList.TryGet(key, values)){
values= new List<int>();
MyList.Add(key, values);
}
values.Add(value);
}
Итерации по элементам:
foreach (var entry in MyList)
{
string key = entry.Key;
List<int> values = entry.Value;
}
Если значения для ключадолжно быть уникальным, чем вместо списка вы можете использовать HashSet .