#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, проверьте. В основном это оболочка, которая вам не нужна