C# 如何显示我的对象';谁的数据?

C# 如何显示我的对象';谁的数据?,c#,linq,datagridview,C#,Linq,Datagridview,这是我的密码: public class Restaurant { public int ID { get; set; } public int DOHVisits { get; set; } public int QtyComplaints { get; set; } public List<Complaint> Complaints = new List<Complaint>(); } public class Complaint {

这是我的密码:

public class Restaurant {
    public int ID { get; set; }
    public int DOHVisits { get; set; }
    public int QtyComplaints { get; set; }
    public List<Complaint> Complaints = new List<Complaint>();
}

public class Complaint {
    public string Name; { get; set; }
    public string Address; { get; set; }
    public string Description; { get; set; }
    public DateTime ComplaintDate; { get; set; }
}

void Main() {
    List<Restaurant> RestaurantData = new List<Restaurant>();
}

上述代码的问题在于,它排除了所有投诉为0的餐厅。我希望包括投诉为零的餐厅,并让它们显示在数据网格中

首先,我声明实现GridView的每个数据行的类:

class ResultLine
{
    public int? ID { get; set; }
    public int? DOHVisits { get; set; }
    public int? QtyComplaints { get; set; }
    public string ComplaintName { get; set; }
    public string ComplaintAddress { get; set; }
    public string ComplaintDescription { get; set; }
    public DateTime? ComplaintDate { get; set; }
}
查询可以写为:

IEnumerable<ResultLine> lines = RestaurantData.OrderByDescending(x => x.DOHVisits)
    .SelectMany(r => new List<ResultLine>() {
        new ResultLine() {
            ID = r.ID,
            DOHVisits = r.DOHVisits,
            QtyComplaints = r.QtyComplaints,
            ComplaintName = null,
            ComplaintAddress = null,
            ComplaintDescription = null,
            ComplaintDate = null
        }
    }.Concat(r.Complaints.OrderBy(c => c.ComplaintDate).Select(c => new ResultLine() {
        ID = null,
        DOHVisits = null,
        QtyComplaints = null,
        ComplaintName = c.Name,
        ComplaintAddress = c.Address,
        ComplaintDescription = c.Description,
        ComplaintDate = c.ComplaintDate
    })));
IEnumerable lines=RestaurantData.OrderByDescending(x=>x.DOHVisits)
.SelectMany(r=>newlist(){
新结果行(){
ID=r.ID,
DOHVisits=r.DOHVisits,
QtyComplaints=r.QtyComplaints,
ComplaintName=null,
投诉地址=null,
ComplaintDescription=null,
ComplaintDate=null
}
}.Concat(r.Complaints.OrderBy(c=>c.ComplaintDate)。选择(c=>newresultline()){
ID=null,
DOHVisits=null,
QtyComplaints=null,
投诉名称=c.名称,
投诉地址=c.地址,
投诉描述=c.描述,
ComplaintDate=c.ComplaintDate
})));

我已编辑了您的标题。请参阅“”,其中的共识是“不,他们不应该”。
IEnumerable<ResultLine> lines = RestaurantData.OrderByDescending(x => x.DOHVisits)
    .SelectMany(r => new List<ResultLine>() {
        new ResultLine() {
            ID = r.ID,
            DOHVisits = r.DOHVisits,
            QtyComplaints = r.QtyComplaints,
            ComplaintName = null,
            ComplaintAddress = null,
            ComplaintDescription = null,
            ComplaintDate = null
        }
    }.Concat(r.Complaints.OrderBy(c => c.ComplaintDate).Select(c => new ResultLine() {
        ID = null,
        DOHVisits = null,
        QtyComplaints = null,
        ComplaintName = c.Name,
        ComplaintAddress = c.Address,
        ComplaintDescription = c.Description,
        ComplaintDate = c.ComplaintDate
    })));