从String中拆分并删除重复项

时间:2011-07-16 06:16:17

标签: c# asp.net

我想拆分给定的字符串并从该字符串中删除重复项。就像我有以下字符串:

  

这是我在堆栈溢出中的第一篇文章,我在开发方面非常新,我对如何发布问题没有太多了解。

现在我想用空格分割整个字符串,并且新数组没有重复的条目。

我该怎么做?

3 个答案:

答案 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));

}