【发布时间】:2014-01-24 15:42:56
【问题描述】:
对不起,如果标题令人困惑,我不确定我应该如何标记它,我试过了。
我正在编写一个程序来执行一些交叉索引搜索,该程序是使用 Visual Studio 2010 用 C# 编写的。
我有一个包含 3 列的表:Category、Type 和 Item。该表是从 Excel 电子表格中读取的,并存储在某种数据结构中(稍后将对此进行解释)。下面是一个简短的表格示例。
| CATEGORY | TYPE | ITEM | <<header row
| categoryA | typeA | itemA | <<first entry
| categoryA | typeB | N/A |
| categoryA | typeC | itemB |
| categoryA | typeD | N/A |
我将读取两个用户输入字符串,我希望程序确定它们是否匹配。 [假设用户输入没有错字,我编写了一个函数来处理这个并规范化两个字符串]
判断两个字符串是否匹配的逻辑是这样的:
1) 如果字符串是CATEGORY,则每个具有相同CATEGORY 的TYPE 和ITEM 都是匹配项。
2) 如果字符串是TYPE 或ITEM,则只有同一行中的其他数据是匹配的
这里有一些例子,字符串 a 和 b 是两个输入字符串,match 是一个布尔值:
1) a = "categoryA", b = "typeA", match = true
2) a = "categoryA", b = "itemB", match = true
3) a = "typeC", b = "itemB", match = true
4) a = "typeC", b = "itemA", match = false
5) a = "itemA", b = "itemB", match = false
如果不够清楚,我会举更多例子。
所以我的总体问题是:什么是最适合存储 excel 电子表格数据的数据结构,我将如何搜索/比较与此数据结构的匹配?
我虽然使用Dictionary<string, string>,所以我可以在字典中搜索字符串a并获取匹配字符串列表并进行比较,但这样我将拥有一个巨大的字典和多个相同的键,这是行不通的。
感谢任何建议/帮助。
【问题讨论】:
标签: c# string search data-structures cross-reference