c# 2D数组,包含字符串键和整型值

本文关键字:整型 字符串 包含 2D 数组 | 更新日期: 2023-09-27 18:12:47

我正在尝试创建一个数据结构,看起来像下面:

             xls | doc | ppt | pdf
           |---------------------
app/xls    |  1  |  0  |  0  |  0  
app/msword |  1  |  1  |  0  |  0
app/ppt    |  0  |  0  |  1  |  0
app/pdf    |  0  |  0  |  0  |  1

基本上,我有一个List of Lists,其中包含如下信息:

[ext, xls], [mime, app/xls]
[ext, ppt], [mime, app/ppt]
[ext, doc], [mime, app/msword]
[ext, xls], [mime, app/msword]

注意,有时扩展名与适当的MIME值不匹配。因此,希望输出像表一样的原因是能够以图形方式看到未映射到正确MIME的扩展的分布。

所以我可以循环通过列表的列表和访问每个文档的ext和mime,但我不能得到我的头是如何提取/存储,因此以表格形式输出这些信息。我还有一个正确的ext-mime的字典,这对于确保从表的左上角到右下角的对角线是唯一应该具有非零值的地方很重要,如果数据都是正确的(因为在这种情况下,列-行的顺序很重要)。

那么接下来该怎么办?!

c# 2D数组,包含字符串键和整型值

如果我理解你的问题,你正在循环通过一堆数据和填充数字(0和1,但可能是2 ..N++)在上述结构中。

不用花哨,我就用

d = new Dictionary<string, Dictionary<string, int>>();   

如果我想更花哨一点,我可以创建一个具有以下内容的类:

  • 迄今为止看到的水平键列表
  • 目前看到的垂直键列表
  • 一个值为0|1|2的"key1#key2"字典…
  • 一个(key1,key2) =>的"setter"添加到水平键和/或垂直键,如果它不存在的话
  • a "getter" (key1,key2) =>从字典中检索值

这将允许您以最小的努力将其拉出一个漂亮的网格,同时保持良好的写入速度。它还允许您以任何您想要的方式对行/列进行排序。如果您添加了一个"OptimalMapping"来让它知道什么mime类型映射到什么扩展,那么您可以很容易地添加一个检查,以查看某些内容是否是最佳的。