将Dictionary.keyscollection转换为string数组

我有一个Dictionary<string, List<Order>> ,我想有一个数组中的键的列表。 但是,当我select

 string[] keys = dictionary.Keys; 

这不会编译。

如何将KeysCollection转换为string数组?

假设你正在使用.NET 3.5或更高版本( using System.Linq; ):

 string[] keys = dictionary.Keys.ToArray(); 

否则,您将不得不使用CopyTo方法或使用循环:

 string[] keys = new string[dictionary.Keys.Count]; dictionary.Keys.CopyTo(keys, 0); 

dictionary.Keys.CopyTo (keys, 0);

如果你不需要数组(你通常不需要),你可以迭代键。

如果您的密钥不是stringtypes,请使用它。 它需要LINQ。

 string[] keys = dictionary.Keys.Select(x => x.ToString()).ToArray(); 

不幸的是,我没有VS附近检查这个,但我认为这样的事情可能会工作:

 var keysCol = dictionary.Keys; var keysList = new List<???>(keysCol); string[] keys = keysList.ToArray(); 

哪里? 是你的关键types。