📜  c# list 按属性字符串排序 - C# (1)

📅  最后修改于: 2023-12-03 15:29:45.923000             🧑  作者: Mango

C# List 按属性字符串排序

在 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 对象的 NameAge 属性值。

输出结果如下:

Name: Alice, Age: 25
Name: Bob, Age: 30
Name: Charlie, Age: 20

以上就是按照属性字符串进行排序的 C# List 示例代码,希望对您有所帮助。