我有List<MyClass> MyList
MyClass
描述在哪里
public class MyClass
{
public Nullable<decimal> Id { get; set; }
public string Marks { get; set; }
public string rank { get; set; }
}
MyList中的项目
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
它通过标记它给我错误排序顺序
是否有任何方式我从字符串 - &gt;转换标记列的类型小数
答案 0 :(得分:1)
您必须准备另一个具有适当属性类型的类:
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();
答案 1 :(得分:0)
将标记的属性更改为十进制
public class MyClass
{
public Nullable<decimal> Id { get; set; }
public decimal Marks { get; set; }
public string rank { get; set; }
}