C# 字符串包含大量副本,如何消除它们?

C# 字符串包含大量副本,如何消除它们?,c#,.net,string,copy,C#,.net,String,Copy,我得到了这样的东西: string s="Solid;Solid;Gass;Solid;Solid;Gass;Solid;Gass;Liquid;Liquid;" s="Solid;Gass;Liquid;" 现在我想去掉字符串中的副本…所以最后s应该是这样的: string s="Solid;Solid;Gass;Solid;Solid;Gass;Solid;Gass;Liquid;Liquid;" s="Solid;Gass;Liquid;" 您可以拆分字符串,然后找到不同的

我得到了这样的东西:

string s="Solid;Solid;Gass;Solid;Solid;Gass;Solid;Gass;Liquid;Liquid;"  
s="Solid;Gass;Liquid;"
现在我想去掉字符串中的副本…所以最后s应该是这样的:

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

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

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

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

将为您提供一个包含字符串中所有单词的数组,以指定的字符作为单词分隔符;在这种情况下。 将为您的数组提供一个包含唯一单词的集合。 最后,使用指定的字符串,用唯一的单词组成一个新字符串;在本例中,作为分隔符。
拆分字符串、独立、联接。尝试搜索。这里也是一个副本:Soli;固体那么,您想只比较完整的标记/单词还是子字符串?StackOverflow不适用于家庭作业问题。@Robin-是的,它适用于所有问题,前提是他们遵循指导原则,如显示研究/努力。虽然这个问题没有。Stefan,请阅读不要转储代码。解释一下这是怎么回事。@CodeCaster,公平地说,第一张海报通常都会获得投票权,所以系统会有效地鼓励快速、详细地发布。在提问之前,给人们几分钟时间详细阐述一下是合适的me@David输入一个解释不需要三分钟,我也不会支持FGITW给那些不能正常播放的人。如果我没有投反对票,这里的OP可能会在不改变帖子的情况下离开。如果你想玩FGITW,你的第一次编辑应该在我有时间键入注释之前到达。不要转储代码。解释它的作用。公平地说,这是更具解释性的,因为变量命名。。。尽管不是非常明确的人,第一个答案是有效的:老实说,我不认为这样一小段代码,使用这样显式命名的库方法,使用正确命名的变量,需要太多的解释。你是对的,很清楚你调用了什么方法,你的变量包含了什么,但这并不是一个正确的解释。您仍然可以解释这段代码背后的概念。