Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq.Select()中的多个返回语句做什么?_C#_Linq_Select - Fatal编程技术网

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

C# Linq.Select()中的多个返回语句做什么?,c#,linq,select,C#,Linq,Select,我看到很多select语句中都有return语句,我不知道从select语句中返回对象时会发生什么。有人能解释一下吗 var results = swimEntries .Select(se => { if (se.Tag == "DM+" || se.Tag == "DM-") { var modelEntry = modelEntries.Find(e => e.Tag == se.Tag);

我看到很多select语句中都有return语句,我不知道从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();

你在这里看到的是一个声明lambda。
Select()。当
se.Tag
满足某些条件时,它将在modelEntries中搜索对象

您也可以将此声明编写为:

var results = new List<ModelEntry>();  // <-- 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);
}

你在这里看到的是一个声明lambda。
Select()。当
se.Tag
满足某些条件时,它将在modelEntries中搜索对象

您也可以将此声明编写为:

var results = new List<ModelEntry>();  // <-- 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);
}

“select语句”只是输入集合上的一个循环,对每个元素调用一个方法,然后返回从这些方法返回的对象集合。换句话说,您正在将元素对象传递给这里的方法,并且您要么得到原始元素(
returnse;
),要么得到一个
modelEntry
。docsA“select语句”只是输入集合上的一个循环,对每个元素调用一个方法,然后返回从这些方法返回的对象集合。换句话说,您正在将元素对象传递给这里的方法,并且您要么得到原始元素(
returnse;
),要么得到一个
modelEntry
。docsIf如果有人对
var results=swimEntries.Select(SearchForSomething.ToList()的语法感到困惑,这称为“方法组”。更传统的语法看起来像
var results=swimEntries.Select(e=>SearchForSomething(e)).ToList()。这些功能相当于“传统”。。。。。
Select
方法接受作为委托的
Func
。所以传统的方法是传递一个方法。但现在我们更倾向于写兰姆达的。不过,好补充!如果有人对
var results=swimEntries.Select(SearchForSomething.ToList()的语法感到困惑,这称为“方法组”。更传统的语法看起来像
var results=swimEntries.Select(e=>SearchForSomething(e)).ToList()。这些功能相当于“传统”。。。。。
Select
方法接受作为委托的
Func
。所以传统的方法是传递一个方法。但现在我们更倾向于写兰姆达的。不过,好补充!