从C#中的字符串中删除重复的单词

时间:2013-10-14 20:35:13

标签: c#

这是我的代码:

class Program
    {
        static void Main(string[] args)
        {
            string sentence = string.Empty;
            sentence = Console.ReadLine();
            string[] sent = sentence.Split(' ');
            //to be sorted alphabetically
            var x =
                from k in sent
                orderby k
                select k;

            foreach (string s in x)
            {
                    Console.WriteLine(s.ToLower());
            }

            Console.ReadLine();
        }
    }

有没有找到和删除重复单词的方法,或者我应该制作自己的方法?

4 个答案:

答案 0 :(得分:10)

您可以使用Linq的Distinct扩展方法:

var sent = sentence.Split(' ').Distinct();

比较它们时,您也可以使用它来忽略字符串的情况 - 例如。 "WORD""word"将被视为重复:

var sent = sentence.Split(' ').Distinct(StringComparer.CurrentCultureIgnoreCase);

答案 1 :(得分:8)

使用System.Linq Distinct

foreach (string s in x.Distinct())

答案 2 :(得分:4)

使用区别:

foreach (string s in x.Distinct())
{
        Console.WriteLine(s.ToLower());
}

答案 3 :(得分:1)

这应该做你要问的一切:

class Program
{
    static void Main(string[] args)
    {
        string sentence = string.Empty;
        sentence = Console.ReadLine();

        var sent = sentence
            .Split(' ')
            .Distinct()
            .OrderBy(x => x);

        foreach (string s in sent)
        {
            Console.WriteLine(s.ToLower());
        }

        Console.ReadLine();
    }
}

希望它有所帮助!