Ошибка: невозможно преобразовать словарь в IDictionary - PullRequest
2 голосов
/ 18 февраля 2012

Почему возникает ошибка Ошибка 52 Аргумент 1: невозможно преобразовать из 'System.Collections.Generic.Dictionary>' в 'System.Collections.Generic.IDictionary>'

Dictionary<string, List<string>> tempResultIDList = new Dictionary<string,List<string>>();
test(tempResultIDList);

public bool test(IDictionary<string,IList<string>> a)
  {
            return true;
    }

1 Ответ

2 голосов
/ 18 февраля 2012

Dictionary<string, List<string>> реализует IDictionary<string, List<string>>, пока вы пытаетесь привести его к IDictionary<string, *I*List<string>>.Это недопустимо, потому что IDictionary<string, IList<string>> имеет, например, метод Add, принимающий экземпляр IList<string>, а метод Add в вашем Dictionary<string, List<string>> не примет IList<string> в качестве входных данных.

...