字符串包含很多副本,如何摆脱它们?

时间:2015-06-02 10:34:24

标签: c# .net string copy

我有这样的事情:

string s="Solid;Solid;Gass;Solid;Solid;Gass;Solid;Gass;Liquid;Liquid;"  

现在我想摆脱字符串中的副本......所以最后s应该是这样的:

s="Solid;Gass;Liquid;"

2 个答案:

答案 0 :(得分:6)

试试这个:

var parts = s.Split(';');
var distinctParts = parts.Distinct();
var newString = string.Join(";", distinctParts);

其中:

  • Split将为您提供一个包含字符串所有单词的数组,将指定的字符作为单词分隔符(在本例中为;)。
  • Distinct会为您的收藏集提供阵列中唯一的字词。
  • 最后,Join使用指定的字符串(在本例中为;)作为分隔符,使用唯一的单词组成一个新字符串。

答案 1 :(得分:3)

您可以拆分字符串,然后找到不同的实例并将它们连接成一行:

string s = "Solid;Solid;Gass;Solid;Solid;Gass;Solid;Gass;Liquid;Liquid;";
s = string.Join(";", s.Split(';').Distinct());