これが私のコードです:
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;
}
RestaurantData に含まれるデータを DataGridView コントロールに表示したいと思います。まず、レストランの ID を表示し、続いてレストランに対する苦情の数を次のように表示します (ID は列 A、名前は列 B など)。
ID1、名前、住所、年齢、日付 (スペース)、名前、住所、年齢、日付 (スペース)、名前、住所、年齢、日付 ID2、名前、住所、年齢、日付 (スペース)、名前、住所、年齢、日付 (スペース)、名前、住所、年齢、日付
すべてのレストランには少なくとも 1 件の苦情があり、一部のレストランには多くの苦情がある場合があります。しかし、すべての場合において、レストランの ID は 1 回だけ表示されるようにしたいと考えています (その後に苦情が表示されます)。私の過去の DataGridView の使用は、dataGridView1.DataSource = (一部の配列) に限定されていました。ただ、今回紹介したい情報は明らかに配列ではないので行き詰まっています。
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 が 1 回だけ表示されるように上記のクエリを調整するにはどうすればよいですか?