我有一个字符列表[5, 1, 3]
当我执行此操作时,将此列表转换为类似513
的最佳方法是什么:
long.Parse(charList.ToArray().ToString());
我明白了:
System.FormatException
答案 0 :(得分:4)
获得FormatException
的原因是ToArray().ToString()
的输出为"System.Char[]"
- 显然不是float
:)
使用string.Join
:
long.Parse(string.Join("",charList))
如果非数字项存在风险,请使用long.TryParse
;如果您只想保留数字项,请使用char.IsNumber
:
char[] charList = new char[] { '5', '1', '3' };
string.Join("", charList.Where(c => char.IsNumber(c)));
答案 1 :(得分:3)
string longList = string.Join("", charList);
long a = 0;
long.TryParse(longList, out a);
答案 2 :(得分:2)
第一种方法是直接Concat
连接字符串然后Parse
:
long result = long.Parse(string.Concat(charList));
聚合是另一种选择
long result = charList.Aggregate(0L, (a, c) => a * 10 + c - '0');