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();