【发布时间】:2013-06-11 11:00:59
【问题描述】:
我有一个爬虫,它按目录汇总文件类型。
类似:
Class Directory
Property Name As String
Property TypeBreakdown As Dictionary(Of String, Integer)
Property Directories As ICollection(Of Directory)
End Class
我递归到目录并添加一个Directory 作为适当的。当我展开堆栈时,我想汇总子目录细分。例如。
假设Source 目录有一个.cpp 文件和2 个子目录(SubDir、SubDir2),我想要这样的东西...
{
"Name": "Source",
"TypeBreakdown": {".cpp": 1, ".exe": 10, ".c": 110},
"Directories": [
{
"Name": "SubDir",
"TypeBreakdown": {".exe": 10, ".c": 10},
"Directories": [],
},
{
"Name": "SubDir2",
"TypeBreakdown": {".c": 100},
"Directories": [],
}
]
}
我正在创建各种 TypeBreakdown 字典,但不确定如何组合:
如果一个键存在于其中一个而不是两个中,则包括键和值。如果键在两者中都存在,则包括键并对值求和。
有没有办法做到这一点,而不需要一个非常笨拙的 for 循环来检查每个键?
这需要在没有框架更新的情况下在 Vista 上运行,这意味着我的目标是 3.0,因此无法访问 LINQ
【问题讨论】:
-
@SWeko 感谢您的编辑,但任何 .Net 语言都可以——我只是碰巧在 VB 中给出了示例。
标签: .net dictionary coding-style