📅  最后修改于: 2023-12-03 15:29:45.923000             🧑  作者: Mango
在 C# 中,当我们需要排序一个 List 中的元素时,我们可以使用 Sort()
方法,并传入一个比较器作为参数。如果我们需要按照对象的某个属性字符串的值进行排序,我们可以自定义一个比较器,并在比较器中将对象按照属性字符串的值进行比较。
以下是按照属性字符串 "Name"
进行排序的示例代码:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class NameComparer : IComparer<Person>
{
public int Compare(Person x, Person y)
{
return x.Name.CompareTo(y.Name);
}
}
public class Program
{
public static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 20 }
};
people.Sort(new NameComparer());
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
}
上述代码中,我们首先定义了一个 Person
类,其中包含了一个 Name
属性和一个 Age
属性。然后,我们定义了一个 NameComparer
类,实现了 IComparer<Person>
接口,并重写了 Compare
方法,使其按照 Name
属性字符串的值比较两个 Person
对象。
在 Main
方法中,我们创建了一个 List<Person>
对象,并向其中添加了三个 Person
对象。然后,我们调用 people.Sort(new NameComparer())
方法,将 List 中的元素按照 Name
属性字符串的值进行排序。最后,我们使用 foreach
循环遍历排序后的 List,并输出每个 Person
对象的 Name
和 Age
属性值。
输出结果如下:
Name: Alice, Age: 25
Name: Bob, Age: 30
Name: Charlie, Age: 20
以上就是按照属性字符串进行排序的 C# List 示例代码,希望对您有所帮助。