【问题标题】:How to copy/transfer key and values from 1 dictionary to another new dictionary/list?如何将键和值从一个字典复制/传输到另一个新字典/列表?
【发布时间】:2020-10-31 22:38:04
【问题描述】:

我是键值操作的初学者。 我目前有 2 个字典。第一个带有原始键和值的字典。

var firstDict = new Dictionary<string, int>();
  • 键:a,值:1
  • 键:b,值:2
  • 键:c,值:1
  • 键:d,值:3
  • 键:e,值:5
  • 键:f,值:1
  • 键:g,值:4
  • 键:h,值:2
  • 键:i,值:1
  • 键:j,值:2

下面是我的第二本词典。

Dictionary<int, string> secondDict = firstDict
         .GroupBy(k => k.Value)
         .ToDictionary(g => g.Key, g => string.Join(",", g.Select(k => k.Key)));

这是第二本词典打印的内容。

  • 1:值:a,c,f,i
  • 2 : 值 : b,h,j ...

所以我现在要做的是将每个键值与第二个字典分开并创建动态字典/如果满足某些条件,则列表存储它们if(kv.Value &gt; 3){store in new Dictionary}

Key_1_Dict

a,c,f,i

Key_2_Dict

b,h,j

Key_3_Dict ......

我可以知道是否有办法做到这一点吗?

【问题讨论】:

    标签: c# list dictionary grouping keyvaluepair


    【解决方案1】:

    如果我理解了你的意思,你可以使用 Where 来过滤数据:

    Dictionary<int, string> secondDict = firstDict.Where(x => x.Value > 3)
    .GroupBy(k => k.Value)
    .ToDictionary(g => g.Key, g => string.Join(",", g.Select(k => k.Key)));
    

    更新

    对于第三本词典:

    Dictionary<int, string> thirdDict = secondDict
    .Where(x => x.Value.Split(',').Length > 2 && x.Value.Split(',').Length <= 4)
    .ToDictionary(g => g.Key, g => g.Value);
    

    【讨论】:

    • 我试过了,但错误是 CS0019 Operator '>' cannot be applied to 'string' and 'int' 类型的操作数,然后尝试解析但仍然无法成功运行跨度>
    • 您到底想比较什么?
    • 来自第二个字典,我想检查字符串的总数。如果 count >2 && count
    • 我会用第三本词典的新解决方案来更新答案
    猜你喜欢
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2020-12-30
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多