使用空格拆分字符串,使用正斜杠拆分正斜杠

我不想用正斜杠来分割弦乐

我当前的代码如下所示:

string value = "Ctws Cwts/Rotc/Lts Ctws"; string[] tokens = value.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); foreach (var token in tokens) { Console.Write(token); } 

输出是这样的: “Cwts Cwts”,“Rotc”,“Lts Cwts”

现在我希望我的输出是这样的: “Cwts”,“Rotc”,“Lts”

编辑:

一些答案表明我将使用Distinct()

如果值为: “Something1 Cwts / Rotc / Lts Something2”,该怎么办?

输出应该相同: “Cwts”,“Rotc”,“Lts”

只需使用Distinct

  string[] tokens = value .Split(new char[] { '/', ' ' }, StringSplitOptions.RemoveEmptyEntries) .Distinct(); 

另外不要忘记为分隔符添加空间

根据您的编辑,如果您想要显示这些值,您可以执行以下操作:所有输入的"Cwts", "Rotc", "Lts"

 var values = new List { "Cwts", "Rotc", "Lts" }; string[] tokens = value .Split(new char[] { '/', ' ' }, StringSplitOptions.RemoveEmptyEntries) .Where(t => values.Contains(t)) .Distinct(); 

使用不同的2个参数

  var tokens = value .Split(new char[] { '/', ' ' }, StringSplitOptions.RemoveEmptyEntries) .Distinct(); 
  string value = "Ctws Cwts/Rotc/Lts Ctws"; var terms = new HashSet { "Ctws", "Rotc", "Lts" }; var tokens = from s in value.Split(new [] { ' ','/' }, StringSplitOptions.RemoveEmptyEntries) group s by s into g where terms.Contans(g.Key) select g.Key; 

这应该照顾拆分过滤和删除重复。

您可以使用多个字符来分割字符串。 您可以使用String.Split()函数的重载之一。 要删除重复的条目,您可以使用Distinct()函数。

所以这是你的陈述

 string[] tokens = value.Split(new char[] { '/',' ' }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray(); 

编辑 :在你编辑之后,这个问题对我来说似乎有点困惑,你想要实现的目标。 我理解的是,你有一个字符串列表,你想在包含/spaces的单个字符串中找到它。

为此,您可以使用Intersect方法。

 List requiredValues = new List { "Cwts", "Rotc", "Lts" }; var tokens = requiredValues.Intersect(value.Split(new char[] { '/', ' ' }, StringSplitOptions.RemoveEmptyEntries));