如何从linq C#中的字符串中取第一个数字

iho*_*rko 0 c# linq linq-to-entities

例如,我需要从字符串中取第一个数字

"12345 this is a number " => "12345"
"123 <br /> this is also numb 2" => "123"
Run Code Online (Sandbox Code Playgroud)

等等

因为我使用C#代码:

    string number = "";
    foreach(char c in ebayOrderId)
    {
        if (char.IsDigit(c))
        {
            number += c;
        }
        else
        {
            break;
        }
    }
    return number;
Run Code Online (Sandbox Code Playgroud)

如何通过LINQ做到这一点?

谢谢!

Jus*_*ner 8

你可以尝试Enumerable.TakeWhile:

ebayOrderId.TakeWhile(c => char.IsDigit(c));
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您可以将其缩短为`ebayOrderId.TakeWhile(char.IsDigit)`. (3认同)