将字典转换为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”