我有一个保存为字符串的Int列表,我想对它们进行排序。我提出了以下解决方案:
sortList = sortList.OrderByDescending(x => Convert.ToInt32(x.Number)).ToList();
它可以完美地工作,但只有当列表only包含数字时才可以。例如,如果有一个项目是像"???"这样的字符串,排序完全失败。
期望值:
['313', '309', '119', '49', '???']
结果:
['309' '49' '313' '119' '???']
3条答案
按热度按时间szqfcxe21#
因此,需要使用
int.TryParse()
并为无效字符串返回一个低值:我使用
OrderByDescending
而不是OrderBy
,因为您显示的预期结果是按降序排列的。sirbozc52#
在C# 7中,您可以将其减少到只有一行,同时仍然使用
TryParse()
,方法是使用out
-变量:n53p2ov03#
排序任何类型的输入列表(例如PROP01),选择要转换的属性(例如XSTRING1_FIELD)。返回排序后的输入列表。