【发布时间】:2020-02-05 02:33:18
【问题描述】:
我有一本字典,我需要根据从字符串数组中的搜索返回 tvalue。
如何返回与我正在搜索的字符串匹配的 tkey 的 tvalue 以及紧随其后的条目的 tvalue(以计算条目的长度...。这是这样我就可以访问原始文件并导入数据)。
parameters = 要查找的字符串数组。
字典 (dict) 设置为 tkey = name, tvalue = 文件开头的字节数。
input 2 是包含所有信息的文件。
foreach (var p in parameters)
{
if (dict.ContainsKey(p))
{
int posstart = //tvalue of the parameter found;
int posfinish = //tvalue ofnext entry ;
using (FileStream fs = new FileStream(input[2], FileMode.Open, FileAccess.Read))
{
byte[] bytes = //posstart to pos finish
System.Console.WriteLine(Encoding.Default.GetString(bytes));
}
}
else
{
Console.WriteLine($"error, {p} not found");
}
}
欢迎任何帮助,在此先感谢您。
【问题讨论】:
-
您是否尝试从字典中获取与键关联的值?在 C# 字典中使用
dict[key]进行索引;那是你要找的吗?此外,您说“下一个条目”,但 C# 中的字典没有排序;没有“下一个”条目。您能在这里更清楚地说明“下一个条目”是什么意思吗?听起来您的字典中有错误的信息;听起来你需要一对“开始,结束”,而不仅仅是开始。 (C# 有一个排序字典,但它按键排序,而不是值。) -
tvalue of next entry是什么意思? C#Dictionary不一定保持顺序,因此要使“下一个”有意义,您必须首先根据某些标准对其进行排序。 -
下一个条目是指紧随其后的条目,按照它被放入字典的顺序。我正在尝试返回条目的位置及其长度,以使用条目的索引及其从一开始的偏移量从文件中导入数据。我想找到钱德勒和他的信息所以“钱德勒”从文件开头的偏移量“545”字节开始。 tkey 是“chandler”,tvalue 是“545”下一个条目是“Joey”,偏移量为“884”我需要返回 545 到 884 之间的所有字节
-
如果我必须订购它,我会订购 tvalue 的升序,有没有办法确保字典是这样的?
标签: c# dictionary