首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Dictionary数据字典检索求解?解决方案

2012-11-03 
Dictionary数据字典检索求解?keyvalue01类别甲0101类别乙0102类别丙0103...010301...010302...0104...0104

Dictionary数据字典检索求解?
keyvalue
01类别甲
0101类别乙
0102类别丙
0103...
010301...
010302...
0104...
010401...
0105...
010501...
010502...
010503...
01050301 ...
02...
0201...
020101...
...
如上所示这些键值是有规律的,即存在父子关系。

这些键值是通过dictionary来存放,现在传递某个key值,来找出这个key值的所有父级类别,及下一级子类别。

例如给到0105这个key则要找出(且按顺序):
01...
0105...
010501...
010502...
010503...
请教各位达人,有什么“高效”的算法来查出想要的数据。

[解决办法]
高效的不知道,不高效的有一个

C# code
 Dictionary<string, string> List = new Dictionary<string, string>();            List.Add("01", "aaa");            List.Add("0105", "aaa");            List.Add("010501", "aaa");            string str = "0105";            Dictionary<string, string> ListB = new Dictionary<string, string>();            foreach (KeyValuePair<string, string> kvp in List)            {                 if(kvp.Key==str)                    continue;                if (str.StartsWith(kvp.Key))                {                    ListB.Add(kvp.Key, kvp.Value);                }            }            foreach (KeyValuePair<string, string> kvp in List)            {                if (kvp.Key == str)                    continue;                if (kvp.Key.StartsWith(str))                {                    ListB.Add(kvp.Key, kvp.Value);                }            }
[解决办法]
上面的bss代码断开了,更正一下:
C# code
class 科目树{    Dictionary<string, 科目树> 下级子科目= new Dictionary<string, 科目树>;    Entity 本级别的数据;} 

热点排行