C#中list按string字段排序
时间: 2023-08-07 11:05:08 浏览: 142
在C#中,你可以使用`List<T>`的`Sort`方法来对一个列表进行排序。为了按照字符串字段排序,你可以使用`Sort`方法的重载形式,并传入一个自定义的比较器。
以下是一个示例代码,演示如何按照对象的字符串字段进行排序:
```csharp
using System;
using System.Collections.Generic;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class StringComparer : IComparer<Person>
{
public int Compare(Person x, Person y)
{
return string.Compare(x.Name, y.Name);
}
}
class Program
{
static void Main()
{
List<Person> people = new List<Person>()
{
new Person { Name = "John", Age = 25 },
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 20 }
};
people.Sort(new StringComparer());
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
}
```
在上面的示例中,我们创建了一个`Person`类,其中包含一个`Name`属性和一个`Age`属性。然后,我们定义了一个自定义的比较器`StringComparer`,它实现了`IComparer<Person>`接口,并通过比较对象的`Name`属性来进行排序。最后,我们创建了一个包含几个`Person`对象的列表,并使用`Sort`方法对其进行排序。
输出结果将按照人名的字母顺序进行排序。
请注意,如果你想要按照不同的字段进行排序,只需修改`StringComparer`类中的比较逻辑即可。
阅读全文