c# - 有什么字典可以处理欺骗吗?

标签 c# .net

我正在解析一个测试文件,其形式为:

[人]:[姓名]-[John Doe]、[年龄]-[113]、[最喜欢的颜色]-[红色]。

[人]:[姓名]-[约翰·史密斯]、[年龄]-[123]、[最喜欢的颜色]-[蓝色]。

[人]:[姓名]-[John Sandles]、[年龄]-[133]、[最喜欢的颜色]-[绿色]。

[人]:[姓名]-[Joe 博客]、[年龄]-[143]、[最喜欢的颜色]-[卡其色]。

正如您所看到的,这些值没有重复(尽管我想考虑到 future 的重复),但键​​是重复的。键是连字符 (-) 之前的部分。

但是每次我将这些放入字典时,它都会适合并告诉我不允许重复。为什么字典不允许欺骗?我该如何克服这个问题?

最佳答案

字典的 TKey 部分经过哈希处理以便快速查找,如果其中有重复内容,您将陷入冲突和复杂性,这将降低您快速有效查找内容的能力。这就是为什么不允许欺骗。

您可以创建一个包含数据的结构,并将其放入 Dictionnary<ID, MyStruct> 中例如。这样您就可以避免键中的重复(每个结构体都是唯一的,并且您的所有数据都在字典中。

关于c# - 有什么字典可以处理欺骗吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12295517/

相关文章:

c# - C# 3.0 中如何使用分部方法?

c# - 将 DataGrid 绑定(bind)到 ObservableCollection<Dictionary>

.NET 4.0 Framework升级要求?

c# - 带有AllowsTransparency = true的ResizeMode.CanResize不起作用

C#.net - 如何提醒程序线程已完成(事件驱动)?

c# - WPF 使用 MVVM : DataBinding with RelativeSource

c# - 显示所有 messageHeader 的值

c# - OLEDB 参数化查询

c# - 如何获取 HttpWebRequest 的本地端口号?

.net - 将可空类型序列化为可选的不可空元素