有什么方法,将Dictionary的KEY/VALUE转换成一个数组

lzjamao 2016-11-10 04:29:43
样例代码如下

class A
{
private Dictionary<string, string> dict = new Dictionary<string,string>();

public string[] GetKeys()
{
// 我觉得return每次都new,不够优雅
// 对于这种类型的转换,大家有什么更好方法么???
return new List<string>(dict.Keys).ToArray();
}
}
...全文
710 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzjamao 2016-11-12
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
            var dict = new Dictionary<string, string>();
            dict.Add("a", "A");
            dict.Add("b", "B");
            var k = dict.Keys.ToArray();
            Console.WriteLine(k.GetType().Name); //String[]
可以了!需要引用using System.Linq;里面实现了扩展。谢谢各位!
tcmakebest 2016-11-11
  • 打赏
  • 举报
回复
短短一行代码就解决了还不优雅? 太娇情.
xuzuning 2016-11-10
  • 打赏
  • 举报
回复
            var dict = new Dictionary<string, string>();
            dict.Add("a", "A");
            dict.Add("b", "B");
            var k = dict.Keys.ToArray();
            Console.WriteLine(k.GetType().Name); //String[]
xuzuning 2016-11-10
  • 打赏
  • 举报
回复
怎么可能?
            var dict = new Dictionary<string, string>();
            dict.Add("a", "A");
            dict.Add("b", "B");
            var k = dict.Keys.ToArray();
            Console.WriteLine(k[1]); //b
stherix 2016-11-10
  • 打赏
  • 举报
回复
引用 3 楼 MAOMAOXIAOHUO 的回复:
[quote=引用 2 楼 guwei4037 的回复:]
string[] keys = dict.Keys.ToArray();
Dictionary<TKey, TValue>.KeyCollection没有直接ToArray()的函数[/quote] 2楼的方法没有问题 你需要 using System.Linq;
引用 3 楼 MAOMAOXIAOHUO 的回复:
[quote=引用 2 楼 guwei4037 的回复:]
string[] keys = dict.Keys.ToArray();
Dictionary<TKey, TValue>.KeyCollection没有直接ToArray()的函数[/quote] 肯定有ToArray 都实现了IEnumerable接口的 而且看1楼的代码,你也应该using System.Linq了啊
lzjamao 2016-11-10
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
return dict.Keys不就行了。。。。为啥一定要返回数组呢?IEnumerable<T>就可以了啊
为了隐藏Dictionary实现,如果一定要string[]呢?
lzjamao 2016-11-10
  • 打赏
  • 举报
回复
引用 2 楼 guwei4037 的回复:
string[] keys = dict.Keys.ToArray();
Dictionary<TKey, TValue>.KeyCollection没有直接ToArray()的函数
全栈极简 2016-11-10
  • 打赏
  • 举报
回复
string[] keys = dict.Keys.ToArray();
  • 打赏
  • 举报
回复
return dict.Keys不就行了。。。。为啥一定要返回数组呢?IEnumerable<T>就可以了啊

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧