温馨提示×

c# distinctby能处理复杂对象吗

c#
小樊
83
2024-11-28 18:35:14
栏目: 编程语言

是的,C# 的 DistinctBy 方法可以处理复杂对象。DistinctBy 是 LINQ 扩展方法,它允许你根据一个或多个属性对集合中的元素进行去重。这个方法需要一个 IEnumerable<T> 类型的输入序列和一个用于确定元素是否重复的谓词函数。

以下是一个使用 DistinctBy 处理复杂对象的示例:

using System;
using System.Collections.Generic;
using System.Linq;

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        List<Person> people = new List<Person>
        {
            new Person { Name = "Alice", Age = 30 },
            new Person { Name = "Bob", Age = 25 },
            new Person { Name = "Charlie", Age = 30 },
            new Person { Name = "David", Age = 25 }
        };

        var distinctPeople = people.DistinctBy(p => p.Age);

        foreach (var person in distinctPeople)
        {
            Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
        }
    }
}

在这个示例中,我们有一个 Person 类,包含 NameAge 属性。我们创建了一个包含四个 Person 对象的列表,并使用 DistinctBy 方法根据 Age 属性对它们进行去重。最后,我们遍历去重后的列表并输出每个对象的名称和年龄。

0