C# 从数组中查找大写的最后一个单词
我正在处理一个问题,我需要在数组中找到大写的最后一个单词 我已经将所有行拆分为单词:C# 从数组中查找大写的最后一个单词,c#,arrays,linq,C#,Arrays,Linq,我正在处理一个问题,我需要在数组中找到大写的最后一个单词 我已经将所有行拆分为单词: string[]words=Regex.Split(e,sk) 我在尝试这样的事情 z=words.Where(c=>c==c.ToUpper().Last()) 但无论如何这都没用 也许有人有一些建议?您对Last()的调用应该在lambda之外(请参阅) words.LastOrDefault(c=>c==c.ToUpper())是否符合您的需要?因为你需要最后一场比赛 可能有更好的方法来检测字符串是否为大
string[]words=Regex.Split(e,sk)代码>
我在尝试这样的事情
z=words.Where(c=>c==c.ToUpper().Last())代码>
但无论如何这都没用
也许有人有一些建议?您对Last()
的调用应该在lambda之外(请参阅)
words.LastOrDefault(c=>c==c.ToUpper())
是否符合您的需要?因为你需要最后一场比赛
可能有更好的方法来检测字符串是否为大写,例如c.All(Char.IsUpper)
,因此您可以使用
words.LastOrDefault(c => c.All(Char.IsUpper))
对Last()
的调用应该在lambda之外(请参阅)
words.LastOrDefault(c=>c==c.ToUpper())
是否符合您的需要?因为你需要最后一场比赛
可能有更好的方法来检测字符串是否为大写,例如c.All(Char.IsUpper)
,因此您可以使用
words.LastOrDefault(c => c.All(Char.IsUpper))
使用此LINQ查询:
z = words.Where(c =>c.All(Char.IsUpper)).Last();
或者按照另一个答案LastOrDefault
中的建议,如果没有大写的完整字符串,则获取null
字符串。使用此LINQ查询:
z = words.Where(c =>c.All(Char.IsUpper)).Last();
或者按照另一个答案LastOrDefault
中的建议,如果没有大写完整的字符串,则获取null
字符串。“bool”不包含“Last”的定义,并且找不到接受“bool”类型的第一个参数的扩展方法“Last”(您是否缺少using指令或程序集引用?这就是我要说的。)getting@Martin如果您使用的是VS,那么应该有一个“建议修复”的东西(IIRC,它是Ctrl+)使用以下命令自动添加directive@Martin此查询有效,我一分钟前已更改,可能您尝试了错误的版本,请重试。@MaksimSimkin一切正常,但我在控制台中不断出错:序列不包含任何内容elements@Martin您的输入是什么?“bool”不包含“Last”的定义,也没有扩展名m可以找到接受类型为“bool”的第一个参数的ethod“Last”(您是否缺少using指令或程序集引用?这就是我要说的getting@Martin如果您使用的是VS,那么应该有一个“建议修复”的东西(IIRC,它是Ctrl+)使用以下命令自动添加directive@Martin此查询有效,我一分钟前已更改,可能您尝试了错误的版本,请重试。@MaksimSimkin一切正常,但我在控制台中不断出错:序列不包含任何内容elements@Martin您的输入是什么?这是一个好主意,扩展自己的答案复制下面的答案:)您没有完全正确地复制它。另一个答案作为方法组传递Char.IsUpper
。您的示例没有这样做,并且会生成编译器错误。请删除额外的括号或将其更改为类似words.LastOrDefault(c=>c.All(ch=>Char.IsUpper(ch)))
这是一个好主意,扩展自己的答案复制下面的答案:)您没有完全正确地复制它。另一个答案作为方法组传递Char.IsUpper
。您的示例没有这样做,并且会生成编译器错误。请删除额外的括号或将其更改为类似words.LastOrDefault(c=>c.All)的内容(ch=>char.IsUpper(ch))
什么是e
和sk
?这里可能不需要正则表达式…如果你是在空格上进行拆分的话。无论哪种方式,正则表达式对于在已经拆分的字符串中查找单词(这就是单词
是什么)的问题都无关紧要。根据我必须使用正则表达式的任务,下面的解决方案适用于任何IEnumerable
@pinkfloydx33。'e'是一行。在main函数中,我读取所有行,只使用foreach来获取每一行。这是因为我还需要执行多个任务,所以我需要获取每一行。'sk'是分隔符,字符串sk=“[\\s,;:/?!\ \ \-]”;什么是e
和sk
?这里可能不需要正则表达式…如果你是在空格上拆分的话。无论哪种方式,正则表达式对于在已经拆分的字符串中查找单词(这就是单词
是什么)的问题都无关紧要。根据我必须使用正则表达式的任务,下面的解决方案适用于任何IEnumerable
@pinkfloydx33。'e'是一行。在main函数中,我读取所有行,只使用foreach来获取每一行。这是因为我还需要执行多个任务,所以我需要获取每一行。'sk'是分隔符,字符串sk=“[\\s,;:/?!\ \-]+”;