gpt4 book ai didi

c# - 使用 string,string, string,int 和 string,object 创建一个字典

转载 作者:行者123 更新时间:2023-11-30 20:28:19 24 4
gpt4 key购买 nike

我刚刚开始使用 C#,但有点卡住了。

如何创建包含 string,string, string,int 和 string,object 的混合字典?

这是它的样子:

var values = new Dictionary<????>
{
"key0":
{
"key1": "stringValue1",
"key2": "stringValue2",
"key3": "stringValue3",
"key4": 10000
},
"key5": "stringValue4",
"key6": "stringValue5"
};

我将其用作 POST 请求的正文。来自 here 的示例代码

var body = new FormUrlEncodedContent(values);

var url = "http://url.com/endpoint"

var resp = await client.PostAsync(url, body);

var respString = await response.Content.ReadAsStringAsync();

最佳答案

这是您在评论中所说的:

please note that I come from a JavaScript background where you can do whatever you want with a dictionary.

是的,您可以在 JavaScript 中执行此操作,但您需要学习并理解 C# 是一种强类型语言。这并不意味着你必须很强大才能输入它,而是意味着类型在编译时是已知的(大部分)。请仔细阅读。

无论如何,要做您想做的事,您可以使用 Dictionary 来完成,但它不会很漂亮,您的 C# 开发人员也不会对您满意。那么,如何通过创建一个类 (OOP) 为您的键和值提供一些上下文。如下所示:

public class Rootobject // Give it a better name
{
public Key0 key0 { get; set; }
public string key5 { get; set; }
public string key6 { get; set; }
}

public class Key0
{
public string key1 { get; set; }
public string key2 { get; set; }
public string key3 { get; set; }
public int key4 { get; set; }
}

现在您有了自己的类,因此您可以创建它的一个或多个实例:

var ro = new Rootobject();
ro.key5 = "stringValue4";
ro.key6 = "stringValue5";
var key0 = new Key0();
key0.key1 = "stringValue1";
key0.key2 = "stringValue2";
key0.key3 = "stringValue3";
key0.key4 = 1000; // See we cannot put a string here. Different than JavaScript

ro.key0 = key0;

现在您想要 POST 并通过网络发送它,因此您需要对其进行序列化。但在您的情况下,您需要将其序列化为 JSON。因此,得到 NewtonSoft所以它可以为您完成所有繁重的工作——同样不是说您不强壮。那么您需要做的就是:

var json = JsonConvert.SerializeObject(ro);

现在 json 将完全像这样,您可以将其发布到任何地方:

{
"key0": {
"key1": "stringValue1",
"key2": "stringValue2",
"key3": "stringValue3",
"key4": 1000
},
"key5": "stringValue4",
"key6": "stringValue5"
}

我是如何创建类(class)的?

上面的类名为 RootObject,您可以手动创建它,也可以让 Visual Studio 为您创建。我很懒,所以我让 Visual Studio 来做。懒的话看我的回答here .

关于c# - 使用 string,string, string,int 和 string,object 创建一个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47708169/

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