繁体   English   中英

在vb.net中按对象属性数值对自定义对象列表进行排序

[英]Sort a list of custom objects by object property numerical values in vb.net

我想按对象属性数值对自定义对象列表进行排序。

例如,我有具有属性的自定义对象MyObject

MyObject.A
MyObject.B
MyObject.C

其中A是包含数字值的字符串, BC是包含文本的字符串。

我想按A属性从最小数字到最大对包含这些对象的列表进行排序。

我尝试使用此:

MyList = MyList.OrderBy(Function(i) i.A).ToList()

但这会将列表排序,就好像数字是字符串一样。
例如,我得到的结果是: 1,10,11,2,3,4
我真正想要的是: 1,2,3,4,10,11

如何按数值对列表进行排序?

则这不是双重属性,而是显示双重的字符串。 要么总是将此字符串转换为效率不高的double,要么将它们存储为double并仅将它们转换为需要显示它们的字符串(推荐)。

但是,这里是Parse方法:

MyList = MyList.OrderBy(Function(i) Double.Parse(i.A)).ToList()

如果它包含点并且您使用逗号(如注释),请使用:

MyList = MyList.OrderBy(Function(i) Double.Parse(i.A, CultureInfo.InvariantCulture)).ToList()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM