C#的开发中,在没有使用Linq时对List<string>的去重方法是很繁锁的,本文用一些实例来列举一下C#中使用Linq的Distinct对List<string>去重方法。
首先,在去重前,需要把字符串的首尾空格去掉:
var source = new[] {" distinct", "distinct "}; var distinctList = source.Select(s => s.Trim()).Distinct();然后,执行去重操作:
var source = new[] {" Distinct", "distinct "}; var distinctList = source.Select(s => s.Trim()) .Distinct(StringComparer.InvariantCultureIgnoreCase);当然,你也可以在去重前进行一下筛选与过滤。比如,你的字符串中有null值,希望在DISTINCT之前把null值过滤,则如下方法:
var source = new[] {" Distinct", "distinct ", null}; var distinctList = source.Where(s => !string.IsNullOrEmpty(s)) .Select(s => s.Trim()) .Distinct(StringComparer.InvariantCultureIgnoreCase);再如果,你需要保留null值,则只需要写一个静态扩展方法即可:
public static string MyTrim(this string @this) { return @this == null ? null : @this.Trim(); }然后,在调用这个静态扩展方法:
var distinctList = source.Select(s => s.MyTrim()) .Distinct(StringComparer.InvariantCultureIgnoreCase);
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册