从数组中查找大写的最后一个单词

时间:2017-01-08 13:07:32

标签: c# arrays linq

我正在处理一个问题,我需要在数组中查找大写的最后一个单词。

我已将所有行分为单词:

string[] words = Regex.Split(e, sk);

正在尝试这样的事情

z = words.Where(c => c == c.ToUpper().Last());

但无论如何它都没有帮助..

也许有人有一些建议?

2 个答案:

答案 0 :(得分:3)

您对Last()的来电应该在lambda之外(请参阅Maksim Simkin's answer。)

words.LastOrDefault(c => c == c.ToUpper())会满足您的需求吗?因为你需要最后一场比赛。

可能有更好的方法来检测字符串是否为大写,例如c.All(Char.IsUpper),因此您可以使用

words.LastOrDefault(c => c.All(Char.IsUpper))

答案 1 :(得分:3)

使用此LINQ查询:

z = words.Where(c =>c.All(Char.IsUpper)).Last(); 

或在另一个答案LastOrDefault中建议,如果没有人以大写形式完成,请获取null字符串。