我看到了很多带有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();
您在这里看到的是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);
}