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

Edy*_* Cu 89 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(??????);
Run Code Online (Sandbox Code Playgroud)

Jus*_*ner 163

要将密钥转换为自己的列表:

listNumber = dicNumber.Select(kvp => kvp.Key).ToList();
Run Code Online (Sandbox Code Playgroud)

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

listNumber = dicNumber.Keys.ToList();
Run Code Online (Sandbox Code Playgroud)

  • 这真的很有帮助。在返回键之前,我需要将 .Where(...) 应用于字典,但该方法不返回字典,因此我无法访问 Keys 属性。在效果很好之后使用此选择 (2认同)

stu*_*rtd 21

或者:

var keys = new List<string>(dicNumber.Keys);
Run Code Online (Sandbox Code Playgroud)

  • 使用.NET Compact Framework 2.0(所以没有Linq)这对我来说是最好的选择. (4认同)

Pop*_*lin 17

如果您想使用Linq,那么您可以使用以下代码段:

var listNumber = dicNumber.Keys.ToList();
Run Code Online (Sandbox Code Playgroud)


dan*_*004 7

如果你想转换键:

List<string> listNumber = dicNumber.Keys.ToList();
Run Code Online (Sandbox Code Playgroud)

否则,如果你想转换价值观:

List<string> listNumber = dicNumber.Values.ToList();
Run Code Online (Sandbox Code Playgroud)


exp*_*rer 6

foreach (var item in dicNumber)
{
    listnumber.Add(item.Key);
}
Run Code Online (Sandbox Code Playgroud)