【问题标题】:Is there anything like a delimited key-value pair in .NET?.NET 中是否有类似分隔键值对的东西?
【发布时间】:2016-09-24 00:35:02
【问题描述】:

分隔键值对的一个简单示例是name=brady?在这种情况下,连接很简单,但我正在考虑由这样的对组成的字典。我在表单数据和其他上下文中处理了很多这些值的集合,并很快制作了一个粗略的字典,但如果不重新发明轮子,我想对其进行改进以备将来使用。

这个问题的重点是,我想要的特殊键值对是否存在[1],如果不存在,我将扩展Dictionary<TKey, TValue>,一直是我的关注点.

有时人们在这里提出非常愚蠢的问题,所以我原谅那些回答这个问题的人,就好像我是一个熟练的程序员一样。

[1] 正如 Paulo Morgado 所指出的,它确实如此,但它是 MS 代码并且仅具有内部可访问性。现在,如果 MS 有这样的课程,他们为什么不像某些人告诉我的那样只粘贴一本普通的字典。

【问题讨论】:

  • 您能否提供更多详细信息?这与Dictionary<TKey,TValue> 有何不同?
  • 还有一个现有的KeyValuePair<TKey, TValue> 通用结构(由Dictionary<TKey, TValue> 使用)。听起来您只需要一个 Parse() 函数来存储您的数据。
  • @CurtisLusmore 扩展字典有对分隔符、对分隔符、字符转义函数和一个ToString(),它像通常的表单数据一样连接它们,还有一个Parse()函数,可能是@987654329 @ 按键或按值,开始。这比总是使用Dictionary<string,string> 并手动完成其余工作更方便。
  • 用你提到的方法扩展Dictionary<string,string>如何?
  • 所以这里重要的部分是不是你可以将内存中的数据保存在键/值对数据结构中(如Dictionary<TKey,TValue>),但你可以转换往返字符串?这个问题没有提到这样的事情。

标签: .net dictionary key-value c#-6.0 key-value-coding


【解决方案1】:

它不是公开的,我记得它有往返问题,但你可以看看HttpValueCollection

【讨论】:

  • 这是评论,不是答案。您需要充实这一点,使其包含足够的内容,即使没有链接也能回答问题。
  • 感谢您成为这里唯一能理解我的意思的读者。
  • 我认为一个小的复制和粘贴,稍加调整,HttpValueCollection 来源就可以了,谢谢。
【解决方案2】:

我觉得你可以用https://msdn.microsoft.com/en-us/library/system.collections.specialized.namevaluecollection(v=vs.110).aspx

HttpUtility 提供了从字符串管理此类集合的方法。

var parameters = HttpUtility.ParseQueryString(string.Empty);
parameters["foo"] = "text";
parameters["baz"] = "asdff=32322";
Console.WriteLine(parameters.ToString());

parameters = HttpUtility.ParseQueryString(parameters.ToString());
Console.WriteLine(parameters["foo"]);
Console.WriteLine(parameters["baz"]);

【讨论】:

  • 谢谢。看到其他评论员都告诉我使用普通的字典,或者一个特殊的序列化器,如果还没有这样的字典,我打算这样做。
猜你喜欢
  • 2011-05-01
  • 2011-01-21
  • 1970-01-01
  • 2013-01-13
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 2016-10-17
相关资源
最近更新 更多