Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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中使用逗号分隔符_C#_Word Count - Fatal编程技术网

C# 显示文本中第二长的单词,并在C中使用逗号分隔符

C# 显示文本中第二长的单词,并在C中使用逗号分隔符,c#,word-count,C#,Word Count,我想知道如何用逗号分隔符显示文本中第二长的单词列表 下面是查找第二长单词(无重复)的代码 结果应该显示一个第二长单词的列表苹果,柠檬和逗号分隔符的标签,但它目前只显示单个结果柠檬。如何使用逗号分隔符同时显示 我是编程新手,所以更简单的编码会更好 提前谢谢大家~ string st = "I like apples. I like red apples. I like red apples, lemons and green bananas."; char[] sep =

我想知道如何用逗号分隔符显示文本中第二长的单词列表

下面是查找第二长单词(无重复)的代码

结果应该显示一个第二长单词的列表苹果,柠檬和逗号分隔符的标签,但它目前只显示单个结果柠檬。如何使用逗号分隔符同时显示

我是编程新手,所以更简单的编码会更好

提前谢谢大家~

string st = "I like apples. I like red apples. I like red apples, lemons and green bananas.";

            char[] sep = new char[] { '.', ',', ' ' };

            string secondLongestWord = (from words in st.Split(sep).Distinct().ToArray()
                                        orderby words.Length descending
                                        select words).Take(2).Last().ToString();


            var query = from words in st.Split(sep).Distinct().ToArray()
            where words.Length == secondLongestWord.Length
            select words;

            foreach (string word in query)
            {
                this.lbl2ndLongest.Text = word;             

            }

String类有许多有用的操作,包括Length属性,该属性返回给定String对象中的字符总数。有一个完整的列表。

不是对您在评论中指出的错误的回答,但我想建议您可以按长度对单词进行分组,并直接选择第二长的单词:

var secondLongestWords = (from word in st.Split(sep).Distinct()
                          group word by word.Length into g
                          select g).OrderByDescending(g => g.Key).ElementAtOrDefault(1);
要将其转换为逗号分隔的列表,请执行以下操作:

string list = null;
if (secondLongestWords != null)
{
    list = string.Join(", ", secondLongestWords);
}

如果你想要长度与second longestWord.Length相同的单词,这就是你应该放在where子句中的内容-现在你正试图将整数与字符串进行比较,这是编译器告诉你的。哦,我真傻!where words.Length==第二长单词。Length谢谢普雷斯顿!Hi adrift,谢谢,但是如何在单词之间使用逗号分隔符显示多个结果?谢谢谢谢它工作得很好!但我不知道使用ElementAtOrDefault1。。。。。所以我将旧的编码替换为新的编码,但组合返回一个值。我还能用我以前的编码来处理你的字符串列表块吗?谢谢:ElementAtOrDefault1返回可枚举中的第二个元素,如果没有第二个元素,则返回null。如果你想取第一个元素,如果只有一个元素,那么是的,你可以使用你所拥有的。Take2.Last.噢,我明白了!非常感谢漂流OP已经表明他们知道.Length属性。您没有显示任何代码来演示如何使用它来回答问题。这两个可能都是为什么你得到的不是我的反对票,如果你想知道的话。