【问题标题】:Trim HashSet<string>修剪 HashSet<字符串>
【发布时间】:2017-08-03 18:48:27
【问题描述】:

values 和 _values 都是HashSet&lt;string&gt;
我需要修剪所有的值。

我需要的是这个

values = _values.Trim();

但这不是有效的语法

编辑

这是我现在正在做的,但看起来很乱

values.Clear();
foreach (string s in _values)
{
   values.Add(s.Trim());
}    

【问题讨论】:

  • 除非您可以在将值添加到 _values 之前对其进行修剪,否则这可能是最简单的解决方案。
  • 什么是“更好”?你能解释一下吗?
  • @GeorgeAlexandria 更干净或更高效的东西。
  • values = new HashSet&lt;string&gt;(_values.Select(x =&gt; x.Trim())); 一个替代选项。您不必清除哈希集
  • @Paparazzi 这不是代码审查。你需要真正解决一个问题才能成为主题。

标签: c# .net hashset


【解决方案1】:

“更好”是有争议的,但您可以使用内置方法UnionWith 和一些 LINQ 来获得一个不错的衬里来替换您的 foreach。可以将其视为与 AddRange 最接近的等价物,当然有一组限制。

values.Clear();
values.UnionWith(_values.Select(x => x.Trim()));

【讨论】:

  • 我不会这样称呼它更好,只有 1 行短(忽略问题中的大括号)。它绝对不比问题中的代码更有效。
  • 我更喜欢这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多