我正在调用第三方提供的员工搜索 API,该 API 将返回员工列表作为搜索结果。该 Employee 类有 n 个属性(例如,FirstName、LastName、Address、Mobile No 等)。我想将这些搜索结果的“FirstName”属性与搜索文本进行比较。如果匹配,我希望将这些匹配结果排序在集合的顶部。到目前为止,我已经尝试使用 IComparer 和 IComparable 但它们都不适合我的要求。下面分享我的要求的一个例子:
示例:我在 API 中搜索“John”,API 给出了 10 个结果。在这 10 个结果中,只有 1 个以 john 作为名字,其余 9 个在其他属性中都有 john。我想要一个名字为“John”的员工作为第一个结果。
最佳答案
您可以通过以下方式对列表进行排序
var sorted = resultFromApi.OrderByDescending(x => x.FirstName == "John").ToList();
您的新列表将包含 FirstName
开头为“John”的所有项目,以及 FirstName
末尾具有其他值的所有项目。
关于c# - 按特定字符串对对象集合进行排序 C# LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75472991/