我有一个通用列表List<String, String> ListName
我正在尝试将列表的值插入字典Dictionary<String, int>
我查看了地方,但只发现将字典元素添加到列表中。而我的要求正好相反。我尝试使用 toDictionary,但它对我不起作用。不知道出了什么问题。
有没有人尝试将值从列表插入字典?
我有一个通用列表List<String, String> ListName
我正在尝试将列表的值插入字典Dictionary<String, int>
我查看了地方,但只发现将字典元素添加到列表中。而我的要求正好相反。我尝试使用 toDictionary,但它对我不起作用。不知道出了什么问题。
有没有人尝试将值从列表插入字典?
我假设你的意思是List<string[]>
因为我以前从未见过通用List<T,WhoAmI>
的
如果您正在使用List<string[]>
,您可以使用该ToDictionary
功能
List<string[]> ListName = new List<string[]>();
ListName.Add(new[] { "Stack", "1" });
ListName.Add(new[] { "Overflow", "2" });
// Select the first string([0]) as the key, and parse the 2nd([1]) as int
Dictionary<string,int> result = ListName.ToDictionary(key => key[0], value => int.Parse(value[1]));
如果您在列表中使用某种自定义对象,您也可以这样做
List<MyObject<string, string>> ListName = new List<MyObject<string, string>>();
Dictionary<string, int> result = ListName.ToDictionary(key => key.String1, value => int.Parse(value.String2));
public class MyObject<T, U>
{
public MyObject(T string1, U string2)
{
String1 = string1;
String2 = string2;
}
public T String1 { get; set; }
public U String2 { get; set; }
}
注意:如果有可能它可能不是数字,您应该在int.Parse
或使用周围添加错误检查。Int.TryParse
你可以这样使用:
List<KeyValuePair<String, String>> ListName = new List<KeyValuePair<String, String>>();
Dictionary<String, Int32> dict = new Dictionary<String, Int32>();
ListName.ForEach(e=> dict.Add(e.key, Int32.Parse(e.Value)));
我不确定整数的确切来源,但这样的事情应该可以工作:
Dictionary<string, int> dict = new Dictionary<string, int>();
list.ForEach(x => dict.Add(x, theInteger));