使用ToString重新格式化Linq中的数字字段

本文关键字:数字 字段 Linq 格式化 ToString 使用 | 更新日期: 2023-09-27 18:19:12

我有一个LINQ查询,它创建一个匿名集合。我返回的一件事是一个数字,我希望将其格式化为货币,而不是50.23888838222等。但是,如果我尝试这样做:

... select new { Amount = e.Item_Amount.ToString("C") }

我被告知'No overload for . tostring takes 1个参数。

但是,当更改单个字符串时,此代码在其他地方也可以正常工作。

我有这样的问题与Linq到Sql和理解为什么,但这只是一个在内存收集。实现这一目标的最佳方式是什么?

谢谢

使用ToString重新格式化Linq中的数字字段

它的nullable字段(Maybe)。

 Amount = e.Item_Amount.Value.ToString("C")
 //or
 Amount = (e.Item_Amount ?? 0).ToString("C");

听起来e.t item_amount不是一个数字类型。

您可以将其类型更改为数字类型,例如Int32或decimal(优选),或者在迭代期间解析值。

select new { 
  Amount = decimal.Parse(e.Item_Amount).ToString("C") 
}

如果您处理的是可空类型,则可以执行以下操作:

select new { 
      Amount = (e.Item_Amount ?? 0).ToString("C") 
}