C#初心者として、現在、文字列内の最初の大文字のインデックスを見つけるために、私は方法を見つけました
var pos = spam.IndexOf(spam.ToCharArray().First(s => String.Equals(s, char.ToUpper(s))));
機能的には、コードは問題なく動作しますが、文字列を 2 回走査するという不快感がありました。LINQ を使用して 1 回のパスで最初の UpperCase 文字のインデックスを取得する可能性はありますか?
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())