iLe*_*ing 10 c# linq string linq-to-objects c#-4.0
是否有可能编写一个查询,我们从任何给定的字符串中获取所有可以解析为int的字符?
例如,我们有一个字符串,如: "$%^DDFG 6 7 23 1"
结果必须是 "67231"
甚至更轻微一点:我们只能获得前三个数字吗?
Car*_*ñoz 22
这会给你你的字符串
string result = new String("y0urstr1ngW1thNumb3rs".
Where(x => Char.IsDigit(x)).ToArray());
Run Code Online (Sandbox Code Playgroud)
对于.Take(3)
之前使用的前3个字符ToArray()
Ala*_*lan 11
以下应该有效.
var myString = "$%^DDFG 6 7 23 1";
//note that this is still an IEnumerable object and will need
// conversion to int, or whatever type you want.
var myNumber = myString.Where(a=>char.IsNumber(a)).Take(3);
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚您是否希望23
将其视为单个数字序列或2个不同的数字.我上面的解决方案假设您希望得到最终结果672