【问题标题】:creating multiple dictionary and appending into list using c#使用 c# 创建多个字典并附加到列表中
【发布时间】:2020-05-14 10:19:04
【问题描述】:

我是 C# 新手,我正在尝试使用 c# 创建类似的东西。我们怎么能做到这一点任何建议。我只想创建字典列表。

a = [ { "server": "10.14.13.1", "prefer": "Yes" }, { "server": "10.1.2.1", "prefer": "No" } ]

【问题讨论】:

  • 这是哪里的 JSON 输出?包含您要输出的数据的 C# 结构是什么?您通常会让您的控制器返回一个对象并将其序列化为 JSON,而不是尝试从 Razor 文件生成 JSON - 除非将其写入脚本标记中的 HTML 页面?
  • @Rup 需要在 c# 中创建字典列表。如何做到这一点。
  • C# 字典列表?或者将序列化为 JSON 字典的对象?如果只是 JSON 字典,那么我建议使用像 David's answer 或值元组这样的简单类。
  • 但是您可以使用new Dictionary<string,string> 或使用LINQ 的.ToDictionary 创建一个C# 字典,然后将它们添加到列表中。不过,我不知道从常量值创建字典的简单方法。或者,如果您正在转换其他一些字典列表,那么使用 LINQ Select 等也很容易。
  • @Rup 我在 python 中这样做: lst = [] for i in some_source: dict = {} dict["server"] = i.server_ip dict["prefer = i.prefer_type lst.附加(字典)

标签: c# json razor-2


【解决方案1】:
public class POCO
{
    [JsonProperty("server")]
    public string Server { get; set; }

    [JsonProperty("prefer")]
    public string Prefer { get; set; }
}

POCO o1 = new POCO("10.1.2.1", "No");
POCO o2 = new POCO("10.1.2.2", "YES");
List<POCO> list = new List<POCO>() {o1, o2};

JsonConvert.SerializeObject(list);  //<-- this is what you want

注意事项

  1. 这只是代码 sn-p,我们需要 constructor(a,b) 才能使其完全正常工作。
  2. 您不必自己创建 POCO 对象,有很多在线工具,例如https://app.quicktype.io/ 为您提供帮助。

另请参阅this link

【讨论】:

  • @David 但这是静态的。我需要创建字典值来自另一个列表字典的字典列表。
  • @sonali 不太关注。你所说的静态是什么意思以及如何从另一个字典中创建一个?
  • 我在 python 中这样做: lst = [] for i in some_source: dict = {} dict["server"] = i.server_ip dict["prefer = i.prefer_type lst.append(字典)
  • 服务器和首选值将来自 some_souce(考虑 excel)所以我将循环并创建 dict 并附加到列表中,所以在循环结束时我的列表将有多个字典(基于 some_source)所以如何我可以用 c# 来做吗?
  • 你可以使用动态对象,但是你失去了C#的强类型!你有你的选择,:)!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多