我有一个字符串数组。检查数组中所有元素是否为数字
的最简单方法是什么string[] str = new string[] { "23", "25", "Ho" };
答案 0 :(得分:6)
你可以这样做:
var isOnlyNumbers = str.All(s =>
{
double i;
return double.TryParse(s, out i);
});
答案 1 :(得分:6)
如果添加对Microsoft.VisualBasic
程序集的引用,则可以使用以下单行程序:
bool isEverythingNumeric =
str.All(s => Microsoft.VisualBasic.Information.IsNumeric(s));
答案 2 :(得分:4)
试试这个:
string[] str = new string[] { "23", "25", "Ho" };
double trouble;
if (str.All(number => Double.TryParse(number, out trouble)))
{
// do stuff
}
答案 3 :(得分:3)
如何使用正则表达式?
using System.Text.RegularExpressions;
...
bool isNum= Regex.IsMatch(strToMatch,"^\\d+(\\.\\d+)?$");
答案 4 :(得分:2)
使用字符串也是字符数组的事实,您可以执行以下操作:
str.All(s => s.All(c => Char.IsDigit(c)));
答案 5 :(得分:1)
或者没有linq ......
bool allNumbers = true;
foreach(string str in myArray)
{
int nr;
if(!Int32.TryParse(str, out nr))
{
allNumbers = false;
break;
}
}