我正在使用列表来存储一对十六进制值(例如,在列表AD38F2D8中,显示为:Value_A:AD 38 F2 D8).
我的问题是我应该使用Dictionary<string, string>或者我应该使用 Dictionary<string, NewCustomObject>十六进制字符串作为一对字符串存储.(值:[AD,38,F2,D8])而不是(值:AD38F2D8).
它可能不会在两者之间产生很大的差异.
随着Dictionary<string, string>我只想存储在字典中的每个十六进制字符串,然后拆了他们在各自的对,当我需要他们.如果我使用的话,Dictionary<string, NewCustomObject>我最终会先将十六进制字符串拆分成各自的对,然后将它们存储在字典中.
我的问题是我应该使用哪个?或者我应该继续使用列表?
我并不完全有必要使用,Dictionary<string, string>因为我仍然知道哪个索引是什么字符串,只是它会看起来更好.
列表示例:
Index = 0, Value = 3D95FF08
Index = 1, Value = 8D932A08
Run Code Online (Sandbox Code Playgroud)
Dictionary<string, string> 例:
Index = 0, Key = First, Value = 3D95FF08
Index = 1, Key = Second, Value = 8D932A08
Run Code Online (Sandbox Code Playgroud)
Dictionary<string, NewCustomObject> 例:
Index = 0, Key = First, Value = 3D, 95, FF, 08
Index = 1, Key = Second, Value = 8D, 93, 2A, 08
Run Code Online (Sandbox Code Playgroud)
注意:每个字典示例中的索引值只是为了显示与其他字典的对应关系,我知道字典没有索引值,而是使用键.它只是让你更容易看到这个例子.
我在这里遇到了最后一个字典字符串:C#Dictionary,每个键有两个值? 我正在搜索它,因为我在编写python代码时已经多次使用过这种方式.通过在字典中存储字符串列表.
在此先感谢您的帮助!
编辑
列表或字典中的每个字符串将按其各自的字节进行拆分.例如.
BYTE 0 1 2 3 to 6 .....
HEX AD 12 01 0000859D .....
Run Code Online (Sandbox Code Playgroud)
字节0将保持索引字节1将保持参考字节2标志字节3至6:Memb_Number_ID
因此,如果我将它们拆分之前可能会将它们放入字典中,那么在我在各自的位置使用它们之前我不必这样做,因为我必须将它们拆分以计算索引,引用和标志.
数据库是以这种格式提供给我的,我被迫以目前的方式使用它,所以我无法改变它.并且只能调整我的代码.
以上示例将输出为:
Index Reference Link Flags Memb_Number_ID
173 18 +A John (ID: 34205)
Run Code Online (Sandbox Code Playgroud)
字典不公开索引,它们没有这个概念。我会坚持列出一个清单:
List<NewCustomObject> myHexValues;
如果您需要搜索它,您可以使用 LINQ。仅当您需要基于定义的键进行快速访问时才使用字典。
您还没有真正说明您打算如何使用该集合,因此没有人可以真正告诉您使用其中之一 - 我只是根据您想要索引值的事实进行猜测。
更新:如果您想更轻松地访问十六进制值的元素,您可以使用矩形数组或将值包装在自定义类型中,并公开不同部分的属性(您对structvs 的选择class取决于我认为的值),然后将该类型粘贴到列表中。
如果您创建自己的类型,并且希望获得以下语法,则可以公开索引器:
myCustomType[indexKey] = value;
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |