C# 如果值为零,则Decimal.ToString不起作用

C# 如果值为零,则Decimal.ToString不起作用,c#,linq,sum,C#,Linq,Sum,我有以下代码- Label1..Text = dt.AsEnumerable().Sum(x => x.Field<decimal?>("col1") ?? 0).ToString("#,#.####", CultureInfo.InvariantCulture); Label1..Text=dt.AsEnumerable().Sum(x=>x.Field(“col1”)?0).ToString(“#,#.#.#.#,#文化信息.不变量文化”); 这里,我在标签上显示“co

我有以下代码-

Label1..Text = dt.AsEnumerable().Sum(x => x.Field<decimal?>("col1") ?? 0).ToString("#,#.####", CultureInfo.InvariantCulture);
Label1..Text=dt.AsEnumerable().Sum(x=>x.Field(“col1”)?0).ToString(“#,#.#.#.#,#文化信息.不变量文化”);
这里,我在标签上显示“col1”的总和。
我正在检查
x.Field(“col1”)
中是否有空值

问题是,如果列的值类似于1234,它会正确显示,但如果
x.Field(“col1”)
为空,则它会将值设为零,并且标签上不会显示任何内容

如果该值为零且不返回任何内容,则toString似乎会忽略该值

请帮助使用格式
“#,0.######”
,该格式将为0值显示
0
,为
1234
显示
1234

Label1.Text = dt.AsEnumerable()
                 .Sum(x => x.Field<decimal?>("col1") ?? 0)
                 .ToString("#,0.####", CultureInfo.InvariantCulture);
Label1.Text=dt.AsEnumerable()
.Sum(x=>x.Field(“col1”)??0)
.ToString(“#,0.######”,CultureInfo.InvariantCulture);
你应该看到:

“0”-用相应的数字替换零(如果有) 目前否则,结果字符串中将显示零


我不是100%确定,但我认为您可以使用
.Sum(x=>x.Field(“col1”))
而不是使用
??
,这将得到相同的结果,将
null
替换为
0