温馨提示×

c# distinctby能处理集合吗

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

C# 的 LINQ 方法 DistinctBy 不能直接处理集合,但你可以使用 GroupBySelect 方法来实现类似的功能。以下是一个示例:

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 = 28 },
            new Person { Name = "John", Age = 30 }
        };

        var distinctPeople = people
            .GroupBy(p => p.Name)
            .Select(g => g.First())
            .ToList();

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

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

在这个示例中,我们首先使用 GroupBy 方法按 Name 属性对 people 集合进行分组。然后,我们使用 Select 方法从每个分组中选择第一个元素(即具有不同 Name 的元素)。最后,我们将结果转换为列表并输出。

0