C# 合并两个列表并匹配值

C# 合并两个列表并匹配值,c#,C#,“Distributions”变量中有一个名为“Deadline”的键,其中包含一个日期 我想添加“realdimdate=I.Deadline,”。所有其他行都很好,但我就是找不到添加最后一行的方法 必须在AssignmentId上进行匹配,AssignmentId是整个联合收割机的关键。基本上,如果HandInData.Where(…)可以从“分发”中添加“截止日期”的值,就可以了 var HandInData = db.Handins.ToList(); var Distributions

“Distributions”变量中有一个名为“Deadline”的键,其中包含一个日期

我想添加“realdimdate=I.Deadline,”。所有其他行都很好,但我就是找不到添加最后一行的方法

必须在AssignmentId上进行匹配,AssignmentId是整个联合收割机的关键。基本上,如果HandInData.Where(…)可以从“分发”中添加“截止日期”的值,就可以了

var HandInData = db.Handins.ToList();
var Distributions = db.Distributes.ToList();

var AssignNames = HandInData.Where(a => Distributions.Any(x => x.AssignmentId == a.AssignmentId));

var StudentsHandedInDataFeed = AssignNames.Select(i => new {
    *RealDeadline = i.Deadline, (this is not working..)*
    Help = i.NeedHelp,
    Done = i.Done,
    AssName = i.Assignment.AssignmentName,
    Student = i.Student.StudentName,
    DeadlineInTimeformat = i.Assignment.AssignmentDeadline,
    HandedInInTimeformat = i.HandedInDate,
    Deadline = i.Assignment.AssignmentDeadline.ToString(),
    HandedIn = i.HandedInDate.ToString()
});


public class Handin {
    public int HandinId { get; set; }
    public int StudentId { get; set; }
    public int AssignmentId { get; set; }

    public bool? Done { get; set; }
    public bool? NeedHelp { get; set; }

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime? HandedInDate { get; set; }

    public virtual Student Student { get; set; }
    public virtual Assignment Assignment { get; set; }

}

你需要加入这两个列表。您可以使用LINQ语法这样做:

var StudentsHandedInDatFeed = 
    from h in HandInData
    join d in Distributions on h.AssignmentId equals d.AssignmentId
    select new {
        RealDeadline = d.Deadline,
        Help = h.NeedHelp,
        // etc
    };

联接将只包括
HandInData
中的值,其中
发行版中有一个匹配的值,因此这将处理
where(a=>发行版。还有任何(…
代码)。

您需要联接两个列表。您可以使用如下LINQ语法:

var StudentsHandedInDatFeed = 
    from h in HandInData
    join d in Distributions on h.AssignmentId equals d.AssignmentId
    select new {
        RealDeadline = d.Deadline,
        Help = h.NeedHelp,
        // etc
    };

联接将只包括
HandInData
中的值,其中
分发版中有匹配的值,因此这将考虑
其中(a=>分发版。还有任何(…
代码)。

错误是什么?值不存在,没有错误。如果我访问“i”变量,则键“deadline”不存在。正如我在问题中所说的。Idk如何更清楚地表达“截止日期”或“真正的截止日期”?RealDeadline是我可以编出来的一个键。我可以选择任何一个,比如香蕉。Deadline是我无法访问的值。正如我在问题中所说的。哦,
i.Deadline
!很明显,在任何类
Handins上都没有这样的属性。
是什么错误?值不存在,没有错误。如果我访问“i”变量“最后期限”不存在。正如我在问题中所说的。Idk如何更清楚地表达“最后期限”或“真正的最后期限”"?RealDailate是我可以编造的一把钥匙。我可以选择任何一个,比如香蕉。Dailate是我无法访问的值。正如我在问题中所说的。哦,
i.Dailate
!很明显,在任何类
Handins
isOmg上都没有这样的属性。我完全不可能找到我自己。现在几乎是凌晨1点我已经看了三个多小时了谢谢老兄,天哪,就是这样。我完全不知道我自己是怎么想的。快凌晨1点了。我已经看了三个多小时了谢谢老兄。