我想拆分给定的字符串并从该字符串中删除重复项。就像我有以下字符串:
这是我在堆栈溢出中的第一篇文章,我在开发方面非常新,我对如何发布问题没有太多了解。
现在我想用空格分割整个字符串,并且新数组没有重复的条目。
我该怎么做?
答案 0 :(得分:9)
"This is my first post in stack overflow, I am very new in development and I did not have much more idea about the how to post the question."
.Split() // splits using all white space characters as delimiters
.Where(x => x != string.Empty) // removes an empty string if present (caused by multiple spaces next to each other)
.Distinct() // removes duplicates
Distinct()
和Where()
是LINQ扩展方法,因此您的源文件中必须包含using System.Linq;
。
上面的代码将返回IEnumerable<string>
的实例。您应该能够使用此操作执行大多数操作。如果您确实需要一个数组,可以将.ToArray()
附加到语句中。
答案 1 :(得分:3)
将数组添加到HashSet<String>
中,这将删除重复项。
here是关于HashSet的Microsoft文档..
答案 2 :(得分:-1)
static void Main()
{
string str = "abcdaefgheijklimnop";
char[] charArr = str.ToCharArray();
int lastIdx = 0;
for (int i = 0; i < str.Length;)
{
for (int j = i + 1; j < str.Length - 1; j++)
{
if (charArr[i] == charArr[j])
{
//Console.WriteLine(charArr[i]);
int idx = i != 0 ? i - 1 : i;
lastIdx = j;
string temp = str.Substring(idx, j - idx);
Console.WriteLine(temp);
break;
}
}
i++;
}
Console.WriteLine(str.Substring(lastIdx));
}