c# - 按特定字符串对对象集合进行排序 C# LINQ

标签 c# .net linq

我正在调用第三方提供的员工搜索 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/

相关文章:

c# - 如何以编程方式测试 cookie?

c# - MySql + Entity Framework = 每个派生表必须有自己的别名

c# - 是否可以发布 ASP.NET 5 应用程序以使目标计算机不需要安装 DNX?

c# - Quartz Scheduler (.Net) - 为什么在运行内置 'RescheduleJob' 方法后立即触发作业?

javascript - 绘制点标签的显示未正确显示在每月第一天的 X 范围图表上 - Highcharts

c# - 谁能给我看一个 MethodImplOptions.ForwardRef 的例子

c# - 有效消除 .NET 表达式树中的公共(public)子表达式

linq - 是否有必要在 LINQ 查询中不使用方法?

c# - 是否使用 select 或 AsEnumerable().Where()

c# - LINQ 上下文中的术语 "deferred query evaluation"指的是什么?