在C#中现有一类型为List<List<T>>,T类型中有decimal类型属性,如何适用LINQ将其decimal类型属性精确小数点到2位
时间: 2024-03-12 20:43:20 浏览: 130
你可以使用 LINQ 的 Select 方法和 Math.Round 方法将 List<List<T>> 中的所有 decimal 类型属性保留 2 位小数:
```csharp
List<List<T>> listOfLists = ...;
listOfLists = listOfLists.Select(list => list.Select(item =>
{
if (item is decimal decimalValue)
{
return Math.Round(decimalValue, 2);
}
return item;
}).ToList()).ToList();
```
上面的代码中,我们首先使用 Select 方法对 List<List<T>> 进行遍历,然后再使用 Select 方法对内部的 List<T> 进行遍历。在内部遍历中,我们使用 is 运算符判断当前项是否为 decimal 类型,如果是,则使用 Math.Round 方法将其保留 2 位小数,否则直接返回原始值。
最终,我们将结果存储在一个新的 List<List<T>> 对象中。
阅读全文