Как преобразовать список в словарь <строка, список> в C #?

#c# #string #windows #list #dictionary

#c# #строка #Windows #Список #словарь

Вопрос:

введите описание изображения здесьУ меня есть Class свойства String и List<String> . Я хочу преобразовать это List<Class> в a Dictionary<String, List<String>> , но я не смог этого сделать. Как преобразовать List<Class> непосредственно в Dictionary?

 public class SerializationClass
{
    string key;
    List<string> values;

    public SerializationClass()
    {

    }
    public string Key
    {
        get
        {
            return this.key;
        }
        set
        {
            this.key = value;
        }
    }

    public List<string> Values
    {
        get
        {
            return this.values;
        }
        set
        {
            this.values = value;
        }
    }

    public SerializationClass(string _key, List<string> _values)
    {
        this.Key = _key;
        this.Values = _values;
    }
}
  

И население списка равно,

 List<SerializationClass> tempCollection = new List<SerializationClass>();
  

Здесь я хочу преобразовать, чтобы преобразовать tempCollection в Dictionary

 Dictionary<string, List<string>> tempDict = new Dictionary<string, List<string>>(tempCollection.Count);
  

tempCollection должен быть преобразован в tempDict?

Ценю ваши ответы.

Спасибо и с уважением,

Амаль Радж.

Комментарии:

1. Что вы пробовали что-нибудь?..

Ответ №1:

Просто вызовите ToDictionary метод расширения Linq для IEnumerable<T> , единственное условие — key каждый элемент должен быть уникальным, иначе он потерпит неудачу, поскольку Dictionary требуется уникальный ключ

 var tempDict = tempCollection.ToDictionary(x => x.key, x => x.values);
  

Комментарии:

1. Спасибо. Нужно ли добавлять какие-либо ссылки на dll. Потому что я уже пробовал ToDictionary(), но я не смог его использовать.

2. Используйте System.Linq, dll и пространство имен

3. @Amal не видит всплывающих сообщений об ошибках, куда вы вставили

4. Проверьте следующую ссылку, вы также можете получить ссылку на Nuget: nuget.org/packages/System . Linq

5. Существует неоднозначность между тем, какой метод вызывать, поскольку два двоичных файла, импортированных в вашем решении, имеют одинаковый реализованный метод, похоже, вы импортировали два разных двоичных файла, связанных с linq, проверьте. В основном это оболочка, которая вам не нужна