legongju.com
我们一直在努力
2025-01-12 01:01 | 星期天

在c#中如何实现自定义的分组逻辑

在C#中,你可以通过实现IEnumerable.GroupBy方法来自定义分组逻辑。以下是一个示例:

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

class CustomGrouping
{
    static void Main()
    {
        var people = new List
        {
            new Person { Name = "Alice", Age = 30, City = "New York" },
            new Person { Name = "Bob", Age = 25, City = "San Francisco" },
            new Person { Name = "Charlie", Age = 30, City = "New York" },
            new Person { Name = "David", Age = 28, City = "San Francisco" },
            new Person { Name = "Eva", Age = 25, City = "Los Angeles" }
        };

        // 自定义分组逻辑
        var groupedPeople = people.GroupBy(p => p.City, (city, group) =>
        {
            return new
            {
                City = city,
                People = group.OrderBy(p => p.Name).ToList()
            };
        }).ToList();

        // 输出结果
        foreach (var group in groupedPeople)
        {
            Console.WriteLine($"City: {group.City}");
            foreach (var person in group.People)
            {
                Console.WriteLine($"  {person.Name}, {person.Age}");
            }
        }
    }
}

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

在这个示例中,我们首先创建了一个Person列表。然后,我们使用GroupBy方法按城市对人员进行分组。我们提供了一个自定义的匿名类型作为分组的键,并将分组后的结果存储在一个名为groupedPeople的列表中。最后,我们遍历groupedPeople列表并输出每个分组的城市和人员信息。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/85487.html

相关推荐

  • c#如何获得当前时间

    c#如何获得当前时间

    在C#中,您可以使用DateTime类来获取当前时间。下面是一个简单的示例:
    using System; namespace GetCurrentTime
    { class Program { static void Main...

  • c++如何获取网络时间

    c++如何获取网络时间

    在C++中,你可以使用网络时间协议(NTP)来获取网络时间
    #include
    #include #include #include #include #include #include const int NTP_PACKET_SIZ...

  • c++浮点数转字符串怎么实现

    c++浮点数转字符串怎么实现

    在C++中,可以使用标准库函数std::to_string()将浮点数(如float或double)转换为字符串。这是一个简单的示例:
    #include
    #include int main() { floa...

  • c++中构造函数的作用

    c++中构造函数的作用

    在C++中,构造函数(Constructor)是一种特殊的成员函数,它的主要作用是初始化对象。当创建类的新实例时,构造函数会被自动调用。构造函数的名称与类名相同,没...

  • c#中group的结果如何排序和筛选

    c#中group的结果如何排序和筛选

    在C#中,使用LINQ(Language Integrated Query)可以对集合进行分组、排序和筛选。以下是一个示例,展示了如何使用LINQ对集合进行分组、排序和筛选:
    using...

  • 如何处理c#中group操作的异常

    如何处理c#中group操作的异常

    在C#中处理异常,通常使用try-catch语句。对于GroupBy操作可能引发的异常,你需要根据具体的异常类型进行处理。以下是一些建议: 使用try-catch捕获异常: using...

  • c#中group的分组条件如何设置

    c#中group的分组条件如何设置

    在C#中,对集合进行分组通常使用LINQ(Language Integrated Query)查询。要设置分组条件,你需要使用GroupBy方法,并提供一个选择器表达式,该表达式定义了分组...

  • 能否举例c#中group的应用场景

    能否举例c#中group的应用场景

    在C#中,GroupBy是一个非常强大的LINQ(Language Integrated Query)方法,它允许你根据某个或某些属性将集合中的元素进行分组。以下是一些GroupBy在C#中的常见应...