0

我有以下对象,我希望得到一个结果,该结果提供按第一个类别描述分组的对象集合,然后按子类别描述分组:

类别(计数)
     子类别(计数) 子类别(
     计数)

public class Posting
{
    public Category Category { get; set; }
    public SubCategory SubCategory { get; set; }
}

public class Category
{
    public string Description { get; set; }
}

public class SubCategory
{
    public string Description { get; set; }
}

编辑

所以我有这样的工作:

foreach (var category in col.GroupBy(x => x.Category.Description).Select(x => new { CategoryName = x.Key, Items = x }).OrderBy(x => x.CategoryName))
            {
                Console.WriteLine(category.CategoryName);
                foreach (var subCategory in category.Items.GroupBy(x => x.SubCategory.Description).Select(x => new { SubCategoryName = x.Key }).OrderBy(x => x.SubCategoryName))
                {
                    Console.WriteLine("\t" + subCategory.SubCategoryName);
                }
            }

但我想把它放到一个对象图中,这可能吗?

4

1 回答 1

1

这似乎非常接近,但需要注意Key的是“内部”子类别分组的字段是包含类别和子类别的匿名类型。但是,根据您的应用程序正在做什么,这可能是一项功能,因为您将始终拥有可用的类别。

var results = col
    .GroupBy(posting => new
        {
            Category = posting.Category.Description,
            SubCategory = posting.SubCategory.Description
        })
    .GroupBy(group => group.Key.Category.Description);
于 2013-03-06T07:59:42.763 回答