gpt4 book ai didi

c# - 我可以使用点符号来访问字典值吗?

转载 作者:太空狗 更新时间:2023-10-29 23:27:32 24 4
gpt4 key购买 nike

我正在使用 Dictionary<string, string>作为仪器的配置,对于不太了解编程的用户来说,能够从 Visual Studio 获得自动完成功能会更容易。

在 Python 中,我可以创建一个字典并使用点运算符访问不同的值。

d = {'name':'Joe', 'mood':'grumpy'}
d.name
d.mood

C# 有办法做到这一点吗?

我意识到所有涉及的问题,因为字典只是一个通用集合(有多通用?它只是一个键值对列表吗?有趣的问题)。我不打算为此编写一个包装类来完成它(我希望它比使用自定义类的显式属性更灵活一点)。

最佳答案

您已经可以在 C# 中使用匿名类型来做到这一点:

var d = new { name = "Joe", mood = "grumpy"};
d.name
d.mood

或真实类型:

var d = new Person { Name = "Joe", Mood = "grumpy"};
d.Name
d.Mood

并且,在 C# 4.0 中,我们将拥有 DLR,它允许在运行时使用 ExpandoObject 添加属性。 :

dynamic d = new ExpandoObject();
d.name = "Joe";
d.mood = "grumpy";

但是,我不确定您是否可以在 C# 中使用静态分析来执行 IntelliSense。

与您所拥有的最接近的 C# 是

var d = new Dictionary<string, string>()
{ { "name", "Joe" }, { "mood", "grumpy" } };
d["name"]
d["mood"]

支持 IntelliSense。

如果您正在制作 API,我会使用真实类型。

关于c# - 我可以使用点符号来访问字典值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2223154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com