【问题标题】:Update values in ConcurrentDictionary<string, Tuple<string, string>>更新 ConcurrentDictionary<string, Tuple<string, string>> 中的值
【发布时间】:2019-02-18 03:32:13
【问题描述】:

基于ConcurrentDictionary&lt;string, Tuple&lt;string, string&gt;&gt;,我需要更新 Tuple.item1 字符串以删除空格。

到目前为止我所尝试的:

ConcurrentDictionary<string, Tuple<string, string>> myDictionary = new <string, Tuple<string, string>>
RemoveSpacesFromDic(myDictionary);

public Boolean ShouldRemoveSpace(string myValue)
{
   return myValue.Contains(" ");
}

public void RemoveSpacesFromDic(ConcurrentDictionary<string, Tuple<string, string>> sampleDictionary)
{
   List<string> keys = new List<string>(sampleDictionary.Keys);
   foreach (string key in keys)
   {
      if (ShouldRemoveSpace(sampleDictionary[key].Item1))
      {
         string newValue= sampleDictionary[key].Item1;
         //Remove spaces from newValue logic
         sampleDictionary[key] = new Tuple<string, string>(newValue, sampleDictionary[key].Item2);
      }
    }
}

如果没有键列表逻辑,是否有一种优雅的方法可以做到这一点?可能会使用 LINQ。

【问题讨论】:

  • 示例输入和预期输出会有所帮助。
  • 我已经把类型改成了ConcurrentDictionary

标签: c# linq dictionary tuples


【解决方案1】:

以下是使用 LINQ 的方法:

yourDic.ToDictionary(x => x.Key,                    
                     x => Tuple.Create(x.Value.Item1.Replace(" ", ""), x.Value.Item2));

【讨论】:

  • 工作...只是一个注释>>您可以替换而不是更新元组...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
  • 2017-08-22
相关资源
最近更新 更多