首先,我们需要将匿名类型的List转换为一个具有相同属性的自定义类对象列表。然后,我们可以使用LINQ的GroupBy方法按给定的字符串属性分组。

以下是一个示例代码:

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

class Program
{
    static void Main(string[] args)
    {
        // 匿名类型的List<T>
        var anonymousList = new List<dynamic>
        {
            new { Name = "John", Group = "A" },
            new { Name = "Jane", Group = "B" },
            new { Name = "Bob", Group = "A" },
            new { Name = "Alice", Group = "B" },
            new { Name = "Tom", Group = "A" }
        };

        // 转换为自定义类对象列表
        var customList = anonymousList.Select(item => new CustomClass
        {
            Name = item.Name,
            Group = item.Group
        }).ToList();

        // 按给定的字符串属性分组
        var groupedData = customList.GroupBy(item => item.Group);

        // 输出分组结果
        foreach (var group in groupedData)
        {
            Console.WriteLine("Group: " + group.Key);
            foreach (var item in group)
            {
                Console.WriteLine("Name: " + item.Name);
            }
            Console.WriteLine();
        }

        Console.ReadLine();
    }
}

class CustomClass
{
    public string Name { get; set; }
    public string Group { get; set; }
}

在上面的示例中,我们首先定义了一个匿名类型的List,然后使用LINQ的Select方法将其转换为一个具有相同属性的自定义类对象列表。接下来,我们使用GroupBy方法按给定的字符串属性进行分组。最后,我们遍历分组结果并输出每个组的名称和相关项的名称。

请注意,由于匿名类型是在编译时创建的,因此我们无法直接在代码中引用匿名类型的属性。因此,我们需要先将其转换为自定义类对象列表,以便在后续的GroupBy操作中使用

NET CORE listT 匿名类型按给定的字符串分组

原文地址: https://www.cveoy.top/t/topic/ibR6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录