需要帮助使用linq编写代码块

曼奇乌斯

新成员
已加入
五月20,2019
留言内容
1
编程经验
1-3
嘿。我是linQ的新手,我想知道如何使用linq编写相同的代码块。

C#:
         List<MemorableD> memorables = new List<MemorableD>();
        List<StateMD> states = new List<StateMD>();
        void Find(List<MemorableD> selected)
        {
            for (int i = 0; i < states.Count; i++)
            {
                for (int j = 0; j < memorables.Count; j++)
                {
                    if (states[i].Month == memorables[j].Month && states[i].Day == memorables[j].Day)
                    {
                        MemorableD select = new MemorableD(memorables[j].Year, memorables[j].Month, memorables[j].Day, memorables[j].Event, states[i].Event);
                        selected.Add(select);
                    }
                }
            }
        }
 

赫尔曼

活跃的成员
已加入
2016年5月5日
留言内容
31
编程经验
10+
这样的事情应该起作用:

C#:
var selected = states.Join(memorables,
                           s => new { s.Month, s.Day },
                           m => new { m.Month, m.Day },
                           (s, m) => new MemorableD(m.Year, m.Month, m.Day, m.Event, s.Event));
 
最佳 底部