Невозможно использовать ICollection.ToList()

Я пытаюсь позвонить ToList() здесь:

using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;

namespace CSVStuff
{
    public static class CSVContentGenerator
    {
        public static string GetContent(IOrderedDictionary headingsPropertiesMapping)
        {
            var propertyNames = headingsPropertiesMapping.Keys.ToList(); //ICollection does not contain a definition for ToList()
            //var propertyNames = new List<object>(headingsPropertiesMapping.Keys); //Cannot convert from ICollection to int
            return "";
        }
    }
}

Почему они не работают?


person David Klempfner    schedule 12.12.2019    source источник
comment
Отвечает ли это на ваш вопрос? ICollection, действующий как IEnumerable   -  person Jawad    schedule 13.12.2019
comment
@Jawad Это совершенно другой вопрос. Это вопрос, почему ICollection, который обычно позволяет вызывать ToList(), не работает в этой ситуации. Другой спрашивал, почему это было перечислено.   -  person David Klempfner    schedule 13.12.2019
comment
@Backwards_Dave Enumerable.ToList() требует универсального: IEnumerable‹T› или ICollection‹T›   -  person Ilian    schedule 13.12.2019


Ответы (1)


Попробуй это:

var propertyNames = headingsPropertiesMapping.Keys.Cast<T>().ToList();

а тип T — это тип ключей словаря.

person Hadi Samadzad    schedule 12.12.2019
comment
Я думаю, что заказанный словарь устарел? поэтому у него нет универсального типа. .NET Framework 2.0 - person Charles; 13.12.2019
comment
@ Чарльз Да, я так думаю. но я не видел ни одного документа, подтверждающего, что он устарел. - person Hadi Samadzad; 13.12.2019