在C#中,DistinctBy
方法本身并不提供排序功能。它主要用于根据指定的属性从集合中删除重复项。如果你需要对结果进行排序,可以在调用DistinctBy
之后使用OrderBy
或OrderByDescending
方法。
以下是一个示例:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "John", Age = 30 },
new Person { Name = "Jane", Age = 25 },
new Person { Name = "John", Age = 30 },
new Person { Name = "Alice", Age = 25 }
};
var distinctPeople = people.DistinctBy(p => p.Name);
// 对结果进行排序
var sortedDistinctPeople = distinctPeople.OrderBy(p => p.Age);
foreach (var person in sortedDistinctPeople)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
在这个示例中,我们首先使用DistinctBy
方法根据Name
属性删除重复的Person
对象。然后,我们使用OrderBy
方法根据Age
属性对结果进行排序。最后,我们遍历并输出排序后的结果。