C# 的类似 Python 的字典声明?

发布于 2024-12-04 03:40:10 字数 257 浏览 2 评论 0原文

在 Python 中可以这样做:

d = {1 : 'Hello', 2 : 'World'}

在 C# 中它更冗长:

Dictionary<int, string> d = new Dictionary<int, string>();
d.Add(1, 'Hello');
d.Add(2, 'World');

我怎样才能使它不那么冗长?

In Python one can do:

d = {1 : 'Hello', 2 : 'World'}

In C# it's more verbose:

Dictionary<int, string> d = new Dictionary<int, string>();
d.Add(1, 'Hello');
d.Add(2, 'World');

How can I make this less verbose?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扶醉桌前 2024-12-11 03:40:10

您可以使用集合初始值设定项语法(以及使用 var 隐式键入):

var myDict = new Dictionary<int, string> { {1, "Hello"}, {2, "World"} };

此代码实际上将被编译直到你上面的代码。请注意,您(不幸的是)无法省略构造函数或泛型类型参数。

不太Pythonic,但已经实现了!

You can use the collection initializer syntax (and implicit typing with var):

var myDict = new Dictionary<int, string> { {1, "Hello"}, {2, "World"} };

This code will actually be compiled down to the code you have above. Note that you (unfortunately) can't elide the constructor or the generic type arguments.

Not quite Pythonic, but getting there!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文