【发布时间】:2012-05-02 17:12:14
【问题描述】:
作为一个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())
【问题讨论】:
-
6000 声望的“新手”
-
@NikhilAgrawal,来自python 的 6000 个声誉,而不是 C# :)