我正在处理一个问题,我需要在数组中查找大写的最后一个单词。
我已将所有行分为单词:
string[] words = Regex.Split(e, sk);
正在尝试这样的事情
z = words.Where(c => c == c.ToUpper().Last());
但无论如何它都没有帮助..
也许有人有一些建议?
答案 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
字符串。