【问题标题】:How to create Dictionary with a value as Two dictionaries?如何创建值为两个字典的字典?
【发布时间】:2019-09-13 18:16:04
【问题描述】:

在 python 中,它看起来像这样:

{"cookie_name1":{"value":"cookie_value1", "expiry":"123456"}}

我创造了

Dictionary < string,Tuple<Dictionary<string, string>, Dictionary<string, int>>>

在 C# 中,但我不确定我应该如何解决它。而且我什至不明白如何输入 - 我在 C# 中有点新。我花了时间谷歌搜索它,但没有找到解决方案。

【问题讨论】:

  • 你能显示输入字典的样子(键/值类型),以及输出字典的样子吗?如果您有 Dictionary&lt;string, string&gt; 输入,您想要什么输出(即,将其分成两个字典的规则是什么)?
  • 我想使用它有点像python。这些 cookie 应该被保存,然后恢复为 selenium cookie
  • 假设我不知道 python。另外,“cookie”是什么意思?第一个 sn-p 看起来像 Dictionary&lt;string, Dictionary&lt;string, string&gt;&gt;
  • 我想看看你是否应该使用System.Net.CookieContainerSystem.Net.CookieCollection

标签: c# dictionary tuples


【解决方案1】:

您的值看起来像 cookie 的集合。 如果是这种情况,我假设“子”字典的“键”总是相同的。 然后我会创建一个类 Cookie 并将其存储在字典中:

    public class Cookie
    {
        public string value { get; set;}
        public int expiry { get; set;}
    }
    Dictionary<string, Cookie>

【讨论】:

    【解决方案2】:

    c# 是一种强类型语言。理想情况下,您应该创建对象,并为其赋予明确的属性:

    class Cookie
    {
         [JsonProperty("value")]
         public string Value;
         [JsonPropery("expiry")]
         public DateTime Expiry;
    }
    
    var cookieJar = new Dictionary<string, Cookie>();
    
    cookieJar.Add("cookie_name1", new Cookie
    {
        Value = cookie_value1,
        Expiry = DateTime.Now
    });
    
    
    // With json.net you can simply use
    var str = JsonConvert.SerializeObject(cookieJar);
    

    【讨论】:

    • 是的,但我没有使用 Json,我从 selenium 获取 Cookie 列表
    • 那么到底是什么问题?它是一个字符串/JSON,您需要将其转换为可以使用 .net 读取的结构吗?
    • Input 是 ReadOnlyCollection,Cookie 是 OpenQA.Selenium.Cookie 类。我需要获取所有这些 cookie,序列化为 json 字符串,而不是反序列化为 ReadOnlyCollection 以及我可以一个一个地使用 Cookie 操作的东西。 Cookie 实现:here
    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 2016-10-05
    • 2017-04-14
    • 1970-01-01
    • 2017-10-25
    • 2019-05-01
    • 2019-11-17
    • 2021-12-07
    相关资源
    最近更新 更多