【发布时间】:2017-02-21 21:54:05
【问题描述】:
我有一个包含 50+ 位数字的字符串数组。我需要将它们转换为现实世界的整数并按升序排列它们。当我的数字具有不同大小的位数时,它可以工作,但在这种情况下,如果所有数字都具有相同大小的位数,它将不起作用:
string[] unsorted = {"324141241413213123123123132131451231231321363435243321413153412465745238454211425241244252423234234", "324141241413213123123123132131451231231321363435243321413153412465745238454211425241244252423234235"
,"324141241413213123123123132131451231231321363435243321413153412465745238454211425241244252423234200","324141241413213123123123132131451231231321363435243321413153412465745238454211425241244252423234100","324141241413213123123123132131451231231321363435243321413153412465745238454211425241244252423234731"};
var sorted = unsorted.OrderBy(s => double.Parse(s));
什么是最好的解决方案?
【问题讨论】:
-
什么测试用例没有通过?
-
什么样的数字,可以解析成BigInteger的东西?
-
如果您遇到数据类型问题(就数字容量而言),您可以用前导零填充字符串并按字母顺序排序。
-
太短,没有足够的细节。提供示例数据并发布预期结果与实际结果。
-
@barakmanos:如果您想了解规范的内容,它以多种格式发布在互联网上。规范说 C# 字符串是 UTF-16 编码的。