C++ クラスを C# に移植していますが、問題があります。
SpanIncluded に相当するものを見つけたいと思います。
ここに私のcppコードがあります:
while (Notes.Mid(j,1).SpanIncluding("0123456789").IsEmpty()!=NULL){}
誰でも私を助けてくれますか?
SpanIncluding
文字列の先頭から一致を開始し、一致しない最初の文字が見つかったときに停止すると思います。
したがって、一般的な場合の 1 つの定式化は次のようになります。
string match = new string(someString.ToCharArray().
TakeWhile(c => "0123456789".Contains(c)).ToArray());
(または正規表現を使用した同等のもの)。
ただし、質問に示されている例では、文字が 1 つしかない>= '0'
ため、この文字がandであるかどうかのテストに要約される可能性があり<= '9'
ます。
while(char.IsDigit(Notes[j])) { ... };
I found the MSDN page for SpanIncluding, and it seems like a ridiculously specific function. I can't really understand what it tries to solve, since it has some strange caveats.
LINQ would be one way of implementing it:
string text = "2334562";
IEnumerable<char> spannedChars = text.TakeWhile(c => "1234567890".Contains(c));
This is a more direct port of SpanIncluding
than queen3's option, if I understand the MSDN page correctly, because the result set should stop the minute it hits a character not in the spanning string.