我有以下课程:
public class Vehicle
{
public string Make { get; set; }
public DateTime DateManufactured { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后,我列出了一些车辆:
var dateTime1 = DateTime.Now.AddDays(-7);
var dateTime2 = DateTime.Now.AddDays(-8);
var dateTime3 = DateTime.Now.AddDays(-9);
var vehicles = new List<Vehicle>
{
new Vehicle {Make = "Ferrari", DateManufactured = dateTime1},
new Vehicle {Make = "Mazda", DateManufactured = dateTime2},
new Vehicle {Make = "Dodge", DateManufactured = dateTime3},
new Vehicle {Make = "Holden", DateManufactured = dateTime1},
new Vehicle {Make = "Chrysler", DateManufactured = dateTime2},
new Vehicle {Make = "Mazda", DateManufactured = dateTime3},
};
Run Code Online (Sandbox Code Playgroud)
接下来,我试图获得DatesManufactured列表以及每个日期在该日期制造的车辆.
所以我去了:
var vehiclesGroupedByDate = vechicles.GroupBy(x => x.DateManufactured)
.Select(x => new
{
x.First().DateManufactured,
Vehicles = x.ToList()
});
Run Code Online (Sandbox Code Playgroud)
这会罚款,但我不确定这x.First()部分.它有效,但感觉不太对劲.有人知道更优雅的编码方式吗?
当您使用时GroupBy,它将创建一个IGrouping<TKey, TItem>,因此您可以简单地执行以下操作:
var vehiclesGroupedByDate = vechicles.GroupBy(x => x.DateManufactured)
.Select(x => new
{
x.Key,
Vehicles = x.ToList()
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |