Linq表达意思

时间:2016-10-25 05:45:03

标签: .net linq

if (regionTerritory.Any(m => m.Region == int.Parse(region.RegionCode)))
{
    // region exists, add territory
    regionTerritory.First(m => m.Region == int.Parse(region.RegionCode)).Territories.Add(int.Parse(region.TerritoryCode), region.TerritoryName);
}

有谁可以告诉我这意味着什么? 以上代码中的 m 任何第一次添加

先谢谢。

2 个答案:

答案 0 :(得分:3)

m是lambda表达式的参数。它将与集合中的每个元素一起调用(根据需要)。然而,这是编写代码的低效方式。最好使用:

int regionCode = int.Parse(region.RegionCode);
var targetRegion = regionTerritory.FirstOrDefault(m => m.Region == regionCode);
if (targetRegion != null)
{
    targetRegion.Territories.Add(regionCode, region.TerritoryName);
}

现在:

  • 我们只解析region.RegionCode一次
  • 我们只需要在regionTerritory中找到匹配的区域一次(然后添加到其中)

答案 1 :(得分:0)

你是LINQ的新手我想,我建议你在下面提到的网站上创建一个免费帐户,观看视频几个小时。您对LINQ感到兴奋。

网站: www.pluralsight.com 搜索: LINQ Fundamentals with C#6.0 ,作者:Scott Allen

在那里,您会找到一个清晰,正确的答案。