首页 / C#开发 / 正文

C#List或者string[]使用Linq Distinct的忽略大小写的去重方法与技巧实例

41797 发布于: 2014-09-01 读完约需3分钟
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);
 

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: MySQL读取txt文本文件并将数据插入到指定的字段列中

下一篇: C#通过Alexa的API获取对应域名的Alexa Rank(Alexa排名)的方法

本文永久链接码友网 » C#List或者string[]使用Linq Distinct的忽略大小写的去重方法与技巧实例

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册