将字符串类型的列表转换为十进制类型列表
本文关键字:列表 类型 十进制 转换 字符串 | 更新日期: 2023-09-27 18:36:50
我有一个List<MyClass> MyList
MyClass
描述在哪里
public class MyClass
{
public Nullable<decimal> Id { get; set; }
public string Marks { get; set; }
public string rank { get; set; }
}
"我的列表"中的项目
Id Marks Rank
1 100 null
2 15 null
3 5 null
4 55 null
5 51 null
6 12 null
7 32 null
这里的Mark
类型是String
因此,如果我尝试通过标记Sort/OrderBy
它,它会给我错误的排序顺序
有什么方法可以将标记列的类型从字符串转换为十进制>
您必须准备另一个具有正确属性类型的类:
public class MyClass2
{
public Nullable<decimal> Id { get; set; }
public decimal Marks { get; set; }
public string rank { get; set; }
}
然后,可以使用 LINQ 将一个列表转换为另一个列表:
var newList = source.Select(x => new MyClass2
{
Id = x.Id,
Marks = decimal.Parse(x.Marks),
rank = x.rank
}).ToList();
或者,您可以在不更改属性的情况下进行排序:
var orderedList = source.OrderBy(x => decimal.Parse(x.Marks)).ToList();
将标记的属性更改为十进制
public class MyClass
{
public Nullable<decimal> Id { get; set; }
public decimal Marks { get; set; }
public string rank { get; set; }
}