在 C # 中将 dictionary 转换为 list 集合

我在尝试把字典转换成列表时遇到了一个问题。

例如,如果我有一个字典模板字符串作为键和字符串作为值。然后我希望将字典键转换为字符串形式的列表集合。

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(??????);
277589 次浏览

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

var listNumber = dicNumber.Keys.ToList();

将密钥转换为它们自己的 List:

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

或者你可以缩短它,甚至不必费心使用 select:

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

或者:

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

如果要将 Dictionary key 集合传递到一个方法参数中。

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

If you want convert Keys:

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

如果你想转换值:

List<string> listNumber = dicNumber.Values.ToList();
List<string> keys = dicNumber.Keys.ToList();
List<string> values = keys.Select(i => dicNumber[i]).ToList();

这样可以确保每个可能的 index都是 dicNumber[keys[index]] == values[index]