我有一个XML文件:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Cars>
<Car>
<Id>1</Id>
<Color>Blue</Color>
<Price>2000</Price>
</Car>
<Car>
<Id>2</Id>
<Color>Blue</Color>
<Price>2000</Price>
</Car>
<Car>
<Id>3</Id>
<Color>Blue</Color>
<Price>3000</Price>
</Car>
<Car>
<Id>4</Id>
<Color>Green</Color>
<Price>2000</Price>
</Car>
</Cars>
以及相关的课程:
public class Cars
{
public List<Car> Car { get; set; }
}
public class Car
{
public string Id { get; set; }
public string Color { get; set; }
public string Price { get; set; }
}
我想按照颜色和价格对汽车进行分组,并有一个包含组结果的列表。
我做:
Cars cars = Dezerialise<Cars>(MyXmlFile);
var group =
from c in d.Car
group c by new
{
c.Color,
c.Price,
} into gcs
select new Cars()
{
Car = gcs.ToList()
};
但是如何直接选择新的List而不是新的Cars()?
THX
答案 0 :(得分:1)
您可以使用匿名类型而无需创建Cars类的等级,它应该可以正常工作。
var groups =
from c in d.Car
group c by new { c.Color, c.Price } into gcs
select new { Cars = gcs.ToList() };
在查询之后,您将把汽车分组,您可以这样预告:
foreach (var group in groups)
{
foreach (var car in group.Cars)
{
Console.WriteLine(car.Color);
}
}