Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从用户输入句子,确定并按字母顺序显示非重复单词_C#_Linq_Var - Fatal编程技术网

C# 从用户输入句子,确定并按字母顺序显示非重复单词

C# 从用户输入句子,确定并按字母顺序显示非重复单词,c#,linq,var,C#,Linq,Var,官方问题:编写一个控制台应用程序,输入用户的句子(假设没有标点符号),然后确定并按字母顺序显示不重复的单词。对大写字母和小写字母的处理相同。[提示:您可以使用不带参数的string方法Split,如在句子.Split()中,将句子拆分为包含单个单词的字符串数组。默认情况下,Split使用空格作为分隔符。在LINQ查询的select和orderby子句中使用string方法ToLower可获得每个单词的小写版本。] 这就是我到目前为止所做的: static void Main(string[] a

官方问题:编写一个控制台应用程序,输入用户的句子(假设没有标点符号),然后确定并按字母顺序显示不重复的单词。对大写字母和小写字母的处理相同。[提示:您可以使用不带参数的string方法Split,如在句子.Split()中,将句子拆分为包含单个单词的字符串数组。默认情况下,Split使用空格作为分隔符。在LINQ查询的select和orderby子句中使用string方法ToLower可获得每个单词的小写版本。]

这就是我到目前为止所做的:

static void Main(string[] args)
        {   // Creates list of type string
            List<string> list = new List<string>();
            // Writes for sentence
            Console.Write("Enter your sentence. No punctuation.   : ");
            // Converts console into string
            string sent = (Console.ReadLine());
            // Splits string into array
            string[] words = sent.Split();
            // Writes array to list
            for (int i = 0; i < words.Length; i++)
            {
                list.Add(words[i]);
            }
            // Sorts words
            var sort =
                from word in list
                let lowerWord = word.ToLower()
                orderby lowerWord
                select lowerWord;

            // I assume a var query goes here to delete dup words

            // Writes words
            foreach (string c in sort)
            {
                Console.WriteLine(c);
            }
        }
static void Main(字符串[]args)
{//创建类型字符串的列表
列表=新列表();
//为句子写作
控制台。写(“输入你的句子,不要标点符号:”;
//将控制台转换为字符串
已发送字符串=(Console.ReadLine());
//将字符串拆分为数组
string[]words=sent.Split();
//将数组写入列表
for(int i=0;i
我不知道如何找到副本并删除它们。

会吗

var unique = sort.Distinct();
为你工作?

会吗

var unique = sort.Distinct();
    public static IEnumerable<string> GetAlphabetizedUniqueWords(string sentence)
    {
        return (sentence ?? string.Empty)
            .Split()
            .Select(x => x.ToLowerInvariant())
            .Distinct()
            .OrderBy(x => x);
    }


    static void Main( )
    {
        Console.Write("Enter your sentence. No punctuation.   : ");
        foreach (var word in GetAlphabetizedUniqueWords(Console.ReadLine()))
            Console.WriteLine(word);
    }
为您工作?

公共静态IEnumerable GetAlphapozeDuniqueWords(字符串句子)
    public static IEnumerable<string> GetAlphabetizedUniqueWords(string sentence)
    {
        return (sentence ?? string.Empty)
            .Split()
            .Select(x => x.ToLowerInvariant())
            .Distinct()
            .OrderBy(x => x);
    }


    static void Main( )
    {
        Console.Write("Enter your sentence. No punctuation.   : ");
        foreach (var word in GetAlphabetizedUniqueWords(Console.ReadLine()))
            Console.WriteLine(word);
    }
{ 返回(句子??字符串。空) .Split() .Select(x=>x.ToLowerInvariant()) .Distinct() .OrderBy(x=>x); } 静态空隙干管() { 控制台。写(“输入你的句子,不要标点符号:”; foreach(getAlphapozeDuniqueWords(Console.ReadLine())中的变量字) 控制台写入线(word); }
公共静态IEnumerable GetAlphapozeDuniqueWords(字符串语句)
{
返回(句子??字符串。空)
.Split()
.Select(x=>x.ToLowerInvariant())
.Distinct()
.OrderBy(x=>x);
}
静态空隙干管()
{
控制台。写(“输入你的句子,不要标点符号:”;
foreach(getAlphapozeDuniqueWords(Console.ReadLine())中的变量字)
控制台写入线(word);
}

排序后,浏览列表,并将每个单词与前一个单词进行比较。如果匹配,则删除该单词。由于列表已排序,所有重复项必须相邻。

排序后,遍历列表,并将每个单词与前一个单词进行比较。如果匹配,则删除该单词。由于列表已排序,所有重复项必须相邻。

“官方问题:“-呃,什么?这是家庭作业吗?看看LINQ的小组。这是找到副本(或非副本,视情况而定)的最佳方法。米奇:我正试图自学几本书,我试图复习所有最后一章的问题,但这本书似乎不是很好……”官方问题:“-呃,什么?这是家庭作业吗?看看LINQ的小组。这是找到重复项(或非重复项,视情况而定)的最佳方法。米奇:我试图自学几本书,并尝试复习最后一章的所有问题,但这本书似乎不是很好……我以为在字符串方面你不能使用布尔(!=)吗?字符串有一个.Equals()方法。我以为在字符串中不能使用布尔(!=)呢?字符串有一个.Equals()方法。您介意解释一下它是如何工作的吗?我刚开始学C。这会返回一个只包含不同数字的列表吗?我不必使用查询吗?据我所知,“Distinct()”使用相同的默认比较来查找重复字符串并将其从列表中删除。在上面的用法中,它返回字符串列表(与传入的类型相同)。至于“查询”,这里没有任何东西真正符合查询的条件……您介意解释一下它是如何工作的吗?我刚开始学C。这会返回一个只包含不同数字的列表吗?我不必使用查询吗?据我所知,“Distinct()”使用相同的默认比较来查找重复字符串并将其从列表中删除。在上面的用法中,它返回字符串列表(与传入的类型相同)。至于“查询”,这里没有什么真正可以作为查询。。。