【发布时间】:2016-01-11 14:57:56
【问题描述】:
我正在尝试像下面的代码一样遍历两个并发字典,但是我想改用 lambda 表达式
foreach (var s in sb_eventdata)
{
foreach (var f in final_data)
{
if (s.Value.Car.Equals(f.Value.Car))
{
Console.Writeline("Found!");
}
}
}
var values = sb_eventdata.Where(k => k.Value.Hometeam.Contains( ???? );
我真的不确定将什么传递给包含,我假设另一个 lambda 表达式但是什么?
【问题讨论】:
-
您的示例代码正在回答问题“列表 A 中的任何内容是否与列表 B 中的记录匹配?” (如果是,写“找到”)。这与
var values =暗示的“给我列表 A 中与列表 B 中的记录匹配的记录”是不同的问题。 -
为了简化/澄清我的评论:你想要得到常见对象的列表(并将它们分配给
values集合),或者如果存在匹配项,你想做什么(比如@987654325 @)?如果你想要结果列表,使用Intersect,检测有结果,使用Any。 -
最后,如果你想创建一个副作用(比如在每场比赛中打印“Found”),请使用
ForEach(假设它们是Lists)。
标签: c# loops dictionary concurrency lambda