这是我的代码:
void Main() {
List<Restaurant> RestaurantData = new List<Restaurant>();
}
class Restaurant {
public int Id;
public List<Complaint> Complaints = new List<Complaints>();
}
class Complaint {
public string Name;
public string Address;
public int Age;
public DateTime ComplaintDate;
}
我想在 DataGridView 控件中显示 RestaurantData 中包含的数据。首先,我想显示餐厅的 ID,然后是针对餐厅的投诉数量,使其看起来像这样(ID 在 A 列,名称在 B 列,依此类推):
ID1、姓名、地址、年龄、日期 (空格)、姓名、地址、年龄、日期 (空格)、姓名、地址、年龄、日期 ID2、姓名、地址、年龄、日期 (空格)、姓名、地址、年龄、日期 (空格)、姓名、地址、年龄、日期
每家餐厅至少有1个投诉,有些餐厅可能会有很多投诉。但在所有情况下,我都希望餐厅的 ID 只显示一次(随之而来的投诉)。我过去对 DataGridView 的使用仅限于 dataGridView1.DataSource = (some array)。但是,这次我要呈现的信息显然不是数组,所以我被卡住了。
var ds = (from r in RestaurantData
from c in RestaurantData.Complaint
select new {Id = r.Id, Address =c.Address, Age = c.Age, Name = c.Name, Date = c.ComplaintDate}
).ToList();
dataGridView1.DataSource = ds;
目前,这会用相应的餐厅 ID 填充每一行。如何调整上述查询以使餐厅 ID 只显示一次?