gpt4 book ai didi

c# - 使用搜索字符串对列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:02 26 4
gpt4 key购买 nike

我正在尝试根据搜索字符串对列表进行排序。但是好像有点问题。下面是代码:

namespace ListDemo
{
class Program
{
static void Main(string[] args)
{
Employee e1 = new Employee {ID=1,Name="John",City="London" };
Employee e2 = new Employee { ID = 2, Name = "Mary", City = "NY" };
Employee e3 = new Employee { ID = 3, Name = "Dave", City = "Sydney" };
Employee e4 = new Employee { ID = 4, Name = "Kate", City = "Chicago" };
Employee e5 = new Employee { ID = 5, Name = "Sheela", City = "Delhi" };
List<Employee> listEmployee = new List<Employee>();
listEmployee.Add(e1);
listEmployee.Add(e2);
listEmployee.Add(e3);
listEmployee.Add(e4);
listEmployee.Add(e5);

Console.WriteLine("Enter the name via which you wana sort?");
string searchString = Console.ReadLine();
Console.WriteLine("####################Sorted List Starts##############");
var items = from element in listEmployee
orderby element.Name.Equals(searchString)
select element;
foreach (var i in items)
{
Console.WriteLine(i.Name);
}
Console.ReadLine();
}
}

class Employee
{
public int ID { get; set; }
public string Name { get; set; }
public string City { get; set; }
}
}

我有一个 Employee 类,它有 3 个公共(public)属性:ID、Name 和 City。我创建了一个员工列表,其中包含一些虚拟数据。

现在我希望用户输入一个搜索字符串,它实际上是一个名称,如果列表包含该名称,它应该根据搜索字符串对列表进行排序。

例如:如果用户输入的名称为“John”,则修改后的列表应将 John 显示为第一项,依此类推。

我写的代码运行异常。

附上图片: enter image description here

最佳答案

首先,按相等降序排列(即结果排在第一位),其他按ID排序以保存原始顺序(或者,您可以使用任何其他属性进行排序):

 var items = listEmployee
.OrderByDescending(e => e.Name.Equals(searchString))
.ThenBy(e => e.ID).ToArray();

关于c# - 使用搜索字符串对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com