列表组和子组

时间:2010-05-20 08:02:06

标签: c# linq

我正在使用以下课程

class Country
{
   int CtryID {get; set;}
   List<City> city {get; set;}
}

class City
{
   string county {get; set;}    
   int sqkm {get; set;}
}

CtryID的值为1,2,3,县的值为“县1”,“县2”等等

我想要一个像这样的结果

1
   County 1
   County 6
   County 3
2   
   County 9
   County 4
   County 2

如何使用Lambda查询实现此目的?

这就是我用过的东西。该列表称为ListA

 var lst = from aa in ListA
                    from cny in aa.ctryid
                    select new
                    {
                        CountryID= aa.CtryID,
                        CountyName= cny.County
                    };

查询2:同样在我的第二个查询中(与第一个查询分开)我想按国家/地区排序,然后在国家/地区内的每个城市,,而不是每个城市多次重复国家/地区?

1 个答案:

答案 0 :(得分:0)

var countryGroups = (from aa in ListA
                    from cny in aa.ctryid
                    select new
                    {
                        CountryID= aa.CtryID,
                        CountyName= cny.County
                    }).GroupBy(n => n.CountryID);

这会按CountryID对结果进行分组,但输出不会是列表 - 它将是分组。

要输出,迭代countryGroups,并在每个迭代CountyName个对象。