C# - 按元素的首字母排序列表 (StartsWith)
C# - Ordering a list by the initial letters of its elements (StartsWith)
考虑一个标准列表。
我需要以一种方式对我的列表进行排序,即要显示的第一个元素是 StartsWith("SI_IS")
我问过我的一位朋友,他告诉我使用 lambda 自定义函数,这是真的吗?
输出应该类似于
SI_ISFieldName
SI_ISbFieldName
SI_IScFieldName
F_FieldName
TB_FieldName
TB_bFieldName
...
您可以使用条件 OrderBy
,只要记住 true
高于 false
:
var q = items.OrderByDescending(s => s.StartsWith("SI_IS"));
或者您可能觉得这更易读:
var q = items.OrderBy(s => s.StartsWith("SI_IS") ? 0 : 1);
您可以将 OrderBy 与 Lambda 表达式结合使用
myList.OrderByDescending(t => t.StartsWith("SI_IS"));
其中 t.StartsWith("SI_IS")
是自定义函数部分。
你可以像这样使用 Linq
listElements.OrderBy(x => x.StartsWith("SI_IS")).ToList();
考虑一个标准列表。 我需要以一种方式对我的列表进行排序,即要显示的第一个元素是 StartsWith("SI_IS")
我问过我的一位朋友,他告诉我使用 lambda 自定义函数,这是真的吗?
输出应该类似于
SI_ISFieldName
SI_ISbFieldName
SI_IScFieldName
F_FieldName
TB_FieldName
TB_bFieldName
...
您可以使用条件 OrderBy
,只要记住 true
高于 false
:
var q = items.OrderByDescending(s => s.StartsWith("SI_IS"));
或者您可能觉得这更易读:
var q = items.OrderBy(s => s.StartsWith("SI_IS") ? 0 : 1);
您可以将 OrderBy 与 Lambda 表达式结合使用
myList.OrderByDescending(t => t.StartsWith("SI_IS"));
其中 t.StartsWith("SI_IS")
是自定义函数部分。
你可以像这样使用 Linq
listElements.OrderBy(x => x.StartsWith("SI_IS")).ToList();