【发布时间】:2018-09-05 17:50:01
【问题描述】:
如何避免在p.Trim() 之后将空 (IsNullOrEmpty) 值添加到以下 linq 的列表中?
HashSet<string> values;
string[] value;
...
get { ... }
set
{
value.ToList().ForEach(i => values.UnionWith(Array.ConvertAll(i.Split(';'), p => p.Trim())));
}
变量声明仅用于说明目的。
【问题讨论】:
-
value.Where(s => !string.IsNullOrEmpty(s)).ToList().ForEach... -
您不需要调用
value.ToList().ForEach- 您可以直接迭代value或使用Select。使用 Linq 时,从功能上思考! (也就是说,Linq 调用不应该有副作用,因为你执行了values.UnionWith,它直接改变了HashSet)。 -
@Dai 是的。好主意
-
@ParrishHusband 这对输入“abc; ;efg;”有效吗?
-
@JimsonKannantharaJames 查看 Dai 的答案,它非常适合您尝试做的事情。
标签: c# .net linq validation