使用空格拆分字符串,使用正斜杠拆分正斜杠
我不想用正斜杠来分割弦乐
我当前的代码如下所示:
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));