操纵字符串问题

Inf*_*ity 5 c# asp.net

如果我有一个字符串变量值如下: -

string mystring = "TYPE1, TYPE1, TYPE2, TYPE2, TYPE3, TYPE3, TYPE4, TYPE4";
Run Code Online (Sandbox Code Playgroud)

我想操纵这个字符串并按如下方式进行操作: -

string mystring = "TYPE1,TYPE2,TYPE3,TYPE4";
Run Code Online (Sandbox Code Playgroud)

即我想删除其中的所有重复项,我该怎么办?

请帮忙.谢谢.

Jon*_*eet 11

好吧,这是一个LINQ方法:

string deduped = string.Join(",", original.Split(',')
                                          .Select(x => x.Trim())
                                          .Distinct());
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用,Trim因为您的原始字符串在每个项目前都有空格,但结果却没有.

Distinct()实际上并不保证将保留排序,但当前的实现是这样做的,这也是最自然的实现.我发现很难想象它会改变.

如果您使用的是.NET 3.5,则需要调用.ToArray()after,Distinct()因为string.Join.NET 4之前的重载次数较少.


Max*_*erl 2

您可以执行以下操作:

var parts = mystring.Split(',').Select(s => s.Trim()).Distinct().ToList();
string newString = String.Join(",", parts);
Run Code Online (Sandbox Code Playgroud)