我正在尝试创建一个简单的辅助函数来确定一个数字是否是真正的数字。显然它应该能够处理'null',负数,我试图在没有VB IsNumeric 帮助的情况下做到这一点。刚刚学习了 LINQ,我认为那将是完美的。
我想要的另一件事是能够传递字符串、整数、长整数或任何其他类型,所以我认为将“对象”作为参数是我真正想要的。当然,我总是可以在调用辅助方法之前将类型转换为字符串,但有可能吗?
这是我到目前为止的代码,我需要做的就是能够更改参数!我无法想象这是不可能的……有什么想法吗?
private static bool IsNumeric(string input)
{
if (input == null) throw new ArgumentNullException("input");
if (string.IsNullOrEmpty(input)) return false;
int periodCount = 0; //accept a string w/ 1dec to support values w/ a float
return input.Trim()
.ToCharArray()
.Where(c =>
{
if (c == '.') periodCount++;
return Char.IsDigit(c) && periodCount <= 1;
})
.Count() == input.Trim().Length;
}