将字典转换为C#中的列表集合

我试图将字典转换为列表时遇到问题。

示例如果我有字典模板string作为键和string作为值。 然后我希望将字典键转换为string列表收集。

Dictionary<string, string> dicNumber = new Dictionary<string, string>(); List<string> listNumber = new List<string>(); dicNumber.Add("1", "First"); dicNumber.Add("2", "Second"); dicNumber.Add("3", "Third"); // So the code may something look like this //listNumber = dicNumber.Select(??????); 

将键转换为自己的列表:

 listNumber = dicNumber.Select(kvp => kvp.Key).ToList(); 

或者你可以缩短它,甚至不打扰使用select:

 listNumber = dicNumber.Keys.ToList(); 

或者:

 var keys = new List<string>(dicNumber.Keys); 

如果你想使用Linq,那么你可以使用下面的代码片段:

 var listNumber = dicNumber.Keys.ToList(); 
 foreach ( var item in dicNumber) { listnumber.Add (item.Key); } 

如果你想将字典键集合传递给一个方法参数。

 List<string> lstKeys = Dict.Keys; Methodname(lstKeys); ------------------- void MethodName(List<String> lstkeys) { `enter code here` //Do ur task } 

如果你想转换键:

 List<string> listNumber = dicNumber.Keys.ToList(); 

否则,如果你想转换值:

 List<string> listNumber = dicNumber.Values.ToList(); 
 class NumberClass { int Digits { get; set; } string Chars { get; set; } string CharsLower { get; set; } } var dicNumber = new Dictionary<string, string> { {"1", "First"}, {"2", "Second"}, {"3", "Third"} } var listNumber = dicNumber.Select(number => new NumberClass { Digits = Convert.ToInt32(number.Key), Chars = number.Value, CharsLower = number.Value.ToLower() }).ToList(); 

listNumber是NumberClass-es的列表,其中第一个loggingDigits等于1,Chars等于“First”,CharsLower等于“first”