Linq.Select()中的多个返回语句做什么?

问题描述 投票:0回答:1

我看到了很多带有return语句的select语句,我对从select语句中返回对象时的情况感到困惑。有人可以解释吗?

var results = swimEntries
    .Select(se =>
{
      if (se.Tag == "DM+" || se.Tag == "DM-")
      {
         var modelEntry =
             modelEntries.Find(e => e.Tag == se.Tag);


         return modelEntry;
      }

   return se;
})
.ToList();
c# linq select
1个回答
0
投票

您在这里看到的是Statement lambda。 Select()将为每个项目调用其主体中的代码。当se.Tag满足某些条件时,它将在modelEntries中搜索对象。

您也可以将此语句写为:

var results = new List<SwimEntry>();  // <-- i don't know the exact type.. (wild guess)

foreach(var se in swimEntries)
{
    if (se.Tag == "DM+" || se.Tag == "DM-")
    {
        var modelEntry = modelEntries.Find(e => e.Tag == se.Tag);
        results.Add(modelEntry);
    }
    else
        results.Add(se);
}
© www.soinside.com 2019 - 2024. All rights reserved.