是否有可读的方法将数百万的数据放入c#代码中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有可读的方法将数百万的数据放入c#代码中?相关的知识,希望对你有一定的参考价值。

这有点难以阅读:

int x = 100000000;

有没有简单的方法来写:

int x = 100,000,000;

这样的规模是显而易见的吗?

请注意,这不是关于输出的格式。

答案

有没有简单的方法来写100,000,000

不可以。不可能将逗号放在数字中。

逗号和其他类似的东西用于演示目的。如果您担心代码可读性,则要么声明常量,如MILLIONTEN_MILLIONS等,或者只是将变量命名为value来表示值。

另一答案

从C#7开始,您将能够使用下划线字符_来分隔数字组。下划线可以放在数字中的任何位置。一个简单的例子:

const int MILLION = 1_000_000;

你可以将_放在你想要的任何地方,甚至可以将它与整数文字结合起来:

const int USHORT_MAX = 0xFF_FF;

甚至在浮点数和小数位之后,即使在十进制符号之后:

const decimal SMALL_VALUE = 0.000_000_001;

另一答案

不幸的是,你的int声明中没有逗号。可能是在代码开头添加类似内容的最佳方法:

const int oneMillion = 1000000;

然后设置int x = oneMillion;

如果你想让int y等于200万,那么就设置int y = 2 * oneMillion;

这是最佳实践(根据我的经验)。

这有帮助吗?


编辑:

对于更精细的整数,您可以尝试这样的事情:

const int thousand = 1000;
const int million = 1000000;

int x = 1 * million
           + 233 * thousand
           + 456;

它不是最漂亮的,但它可能适合您的可读性需求。它也不会像Int32.Parse("100,000,000");那样影响性能

另一答案
int x = Int32.Parse("100,000,000", System.Globalization.NumberStyles.Number);

我想,这是否更具可读性是个人偏好。

另一答案

如果目的是帮助读者理解代码,那么代码注释可能是适当的,例如,

int number = 1000000; //1,000,000

如果您认为科学记数法更容易阅读,您可以尝试

int number = 1 * 10^6;

要么

int number = (int) 1E+6;

像这样的常量是在编译时计算的,不会影响性能。

另一答案

你可以为你的号码创建自己的类,就像这样。

public class MyNumber
{
    long? _myValue = null;

    public MyNumber(string amount)
    {
        long result = 0;
        if (long.TryParse(amount.Replace(",", ""), out result))
        {
            _myValue = result;
        }
        else
            _myValue = 0;
    }

    public bool HasValue()
    {
        if (_myValue.HasValue) return true;
        return false;
    }

    public long Value()
    {
        if (this.HasValue())
        {
            return _myValue.Value;
        }
        else
        {
            return 0;
        }
    }
}

然后你就可以这样称呼它。

        MyNumber myValue = new MyNumber("9,999,100");

        if (myValue.HasValue())
            MessageBox.Show("Value Is " + myValue.Value().ToString());

以上是关于是否有可读的方法将数百万的数据放入c#代码中?的主要内容,如果未能解决你的问题,请参考以下文章

将数百万次写入文件会损坏我的硬盘吗?

python人类可读的大数字[重复]

如何使用 insert 语句将数百万不同 RDBMS 的数据插入 SQL Server 数据库?

高效地将数百万个 JSON 文件附加到单个文件中

将数百万份文档传输到外部硬盘驱动器

哪种语言可以将数百万个脏地址稳定地处理为标准格式?