作为一个 C# 新手,目前要找出字符串中第一个大写字符的索引,我想出了一个方法
var pos = spam.IndexOf(spam.ToCharArray().First(s => String.Equals(s, char.ToUpper(s))));
从功能上讲,代码工作正常,只是我对遍历字符串两次感到不舒服,一次是找到字符,然后是索引。是否有可能使用 LINQ 一次性获取第一个大写字符的索引?
C ++中的等效方式类似于
std::string::const_iterator itL=find_if(spam.begin(), spam.end(),isupper);
等效的 Python 语法是
next(i for i,e in enumerate(spam) if e.isupper())