.net 字符串逗号隔开去重


1、本文背景

同时输入/选择多条信息或批量输入/选择多条信息形成一个逗号隔开的字符串集,会出现数据重复的错误情况,产生不必要的脏数据,本文依次收集测试几种有效的去重方法。

2、代码实现

1)方法一:List集合和Contains

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string str1 = "1,2,3,4,5,6,7,6,5,4,3,2,1";
var testList = arrayInfo(str1);
string resultStr = string.Join(",", testList);
Console.WriteLine(resultStr);
Console.Read();

#region 内部调用
List <string> arrayInfo(string str)
{
string[] array = str.Split(',');
var list = new List < string > ();
foreach(var item in array)
{
if(!list.Contains(item))
{
list.Add(item);
}
}
return list;
}
#endregion

// 输出结果: 1,2,3,4,5,6,7

2)方法二:正则表达式

1
2
3
4
5
6
string str2 = "1,2,3,4,5,6,7,6,5,4,3,2,1";
str2 = Regex.Replace(str2 + ",", @"(?:([^,]+,))(?=.*?\1)", "");
Console.WriteLine(str2.Substring(0, str2.Length - 1));
Console.Read();

// 输出结果: 7,6,5,4,3,2,1

3)方法三:Linq语句(推荐)

1
2
3
4
5
6
string str3 = "1,2,3,4,5,6,7,6,5,4,3,2,1";
str3 = string.Join(",", str3.Split(',').Distinct().ToArray());
Console.WriteLine(str3);
Console.Read();

// 输出结果: 1,2,3,4,5,6,7

若本文有帮助到阅读本文的同学,欢迎点赞、关注、收藏,互相学习交流。


文章作者: GoodTimeGGB
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GoodTimeGGB !
评论
  目录