Linq之旅:Linq入门详解(Linq to Objects)
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p><p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><strong><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体; color: rgba(0, 0, 0, 1)"><span style="font-size: 14pt">示例代码下载:</span></span></span><span style="line-height: normal" lang="EN-US"><span style="color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline"><span style="font-size: 14pt"><span style="font-family: calibri">Linq</span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">之旅:</span></span></span><span style="font-family: calibri">Linq</span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">入门详解(</span></span></span><span style="font-family: calibri">Linq to Objects</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体"><span style="font-size: 14pt">)</span></span></span></span></span></span></span></strong></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: calibri"><span style="font-size: 12pt"> </span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">本博文详细介绍</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> .NET 3.5 </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">中引入的重要功能:</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Language Integrated Query</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,语言集成查询)。通过</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)">,我们可以</span><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">使用相同</span></span></span></span><span style="color: rgba(255, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">API</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">操作不同的数据源</span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">。接下来就让我们看看</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">是什么以及如何使用?</span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-spacerun: yes"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="background: rgba(49, 132, 155, 1); word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-background-themecolor: accent5; mso-background-themeshade: 191" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 14pt; color: rgba(0, 0, 0, 1)">再此之前,需要先了解的相关技术</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l9 level1 lfo1" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">隐式类型、匿名类型、对象初始化器</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l5 level1 lfo4" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">隐式类型,使用</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">var</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">关键字创建,</span></span></span></span><span style="font-size: 12pt"><span style="color: rgba(255, 0, 0, 1)"><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">C#</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">编译器</span></span></strong></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">会根据用于初始化局部变量的初始值推断出变量的数据类型。(不过我个人认为,能用具体类型的地方尽量不要用</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">var</span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">关键字,因为这样会让你遗忘“被封装类库”方法的返回值类型--有损可读性)</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-para-margin-left: 2.0gd" align="justify"><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-themecolor: text2; mso-themeshade: 191"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(23, 54, 93, 1)">隐式类型使用限制:</span></span></span></strong></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l22 level1 lfo3; mso-para-margin-left: 4.0gd" align="justify"><span><span style="color: rgba(23, 54, 93, 1)"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt"><strong>a)</strong></span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span><strong><span style="font-family: 宋体"><span style="font-size: 12pt">隐式类型只能应用于方法或者属性内局部变量的声明,不能使用</span></span><span style="font-size: 12pt"><span style="font-family: calibri">var</span></span><span style="font-family: 宋体"><span style="font-size: 12pt">来定义返回值、参数的类型或类型的数据成员。</span></span></strong></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l22 level1 lfo3; mso-para-margin-left: 4.0gd" align="justify"><span><span style="color: rgba(23, 54, 93, 1)"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt"><strong>b)</strong></span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span><strong><span style="font-family: 宋体"><span style="font-size: 12pt">使用</span></span><span style="font-size: 12pt"><span style="font-family: calibri">var</span><span style="font-family: 宋体">进行声明的局部变量必须赋初始值,并且不能以</span><span style="font-family: calibri">null</span></span><span style="font-family: 宋体"><span style="font-size: 12pt">作为初始值。</span></span></strong></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l5 level1 lfo4" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">匿名类型,只是一个继承了</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Object</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">的、没有名称的类。</span></span></span></span><span style="font-size: 12pt"><span style="color: rgba(255, 0, 0, 1)"><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">C#</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">编译器</span></span></strong></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">会在编译时自动生成名称唯一的类。</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l5 level1 lfo4" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">对象初始化器,提供一种非常简洁的方式来创建对象和为对象的属性赋值。(相关还有“集合初始化器”)</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">由于</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">C#</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">强类型语言,即我们在声明变量时必须指定变量的具体类型。所以在创建匿名对象时,需要结合隐式类型、匿名类型、对象初始化器一起创建匿名对象。(避免类型转换)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: calibri"><span style="font-size: 12pt"> </span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">示例:</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-tab-count: 2"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">var person = new { name = “heyuquan” , age = 24 }</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l9 level1 lfo1" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Lambda</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">表达式,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Func</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">委托</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.1pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l23 level1 lfo5" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Lambda</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">表达式只是用更简单的方式来书写匿名方法,从而彻底简化</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">.NET</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">委托类型的使用。</span></span></span><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: calibri"><span style="font-size: 12pt"> </span></span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 20.9pt; mso-para-margin-left: 4.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Lambda</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">表达式在</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">C#</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">中的写法是“</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">arg-list => expr-body</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">”,“</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">=></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">”符号左边为表达式的参数列表,右边则是表达式体(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">body</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">)。参数列表可以包含</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">0</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">到多个参数,参数之间使用逗号分割。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.1pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l23 level1 lfo5" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Func</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">委托</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 4.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="line-height: normal; mso-tab-count: 1"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">Func</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">委托,是微软为我们预定义的常用委托,封装一个具有:零个或多个指定类型的输入参数并返回一个指定类型的结果值的方法。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 24pt; mso-char-indent-count: 2.0" align="justify"><img src="//images0.cnblogs.com/blog/106337/201311/24212811-9e2feeaffbc241ffbd10ff8d262c384a.png" alt="image" width="534" height="205" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21.2pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 2.02gd" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">示例:</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> static void Main(string[] args)
{
// 委托函数
Func<string, string, string> func1 = Hello;
// 匿名方法
Func<string, string, string> func2 =
delegate(string a, string b)
{
return "欢迎光临我的博客" + Environment.NewLine + a + " " + b;
};
// Lambda表达式
Func<string, string, string> func3 =
(a, b) => { return "欢迎光临我的博客" + Environment.NewLine + a + " " + b; };
// 调用Func委托
string helloStr = func2("滴答的雨", @"http://www.cnblogs.com/heyuquan/");
Console.WriteLine(helloStr);
}
static string Hello(string a, string b)
{
return "欢迎光临我的博客" + Environment.NewLine + a + " " + b;
}</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l9 level1 lfo1" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">扩展方法</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo2" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">扩展方法声明在静态类中,定义为一个静态方法,其第一个参数需要使用</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">this</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">关键字标识,指示它所扩展的类型。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo2" align="justify"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="color: rgba(0, 0, 0, 1)"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">扩展方法可以将方法写入最初没有提供该方法的类中。还可以</span></span><span style="font-size: 12pt"><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">把方法添加到实现某个接口的任何类中,这样多个类就可以使用相同的实现代码</span></span><span style="color: rgba(0, 0, 0, 1)">。(</span></span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">中,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">System.Linq.Queryable.cs</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">和</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">System.Linq.Enumerable.cs </span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">正是对接口添加扩展方法)</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo2" align="justify"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="color: rgba(0, 0, 0, 1)"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">扩展方法虽定义为一个静态方法,但其调用时不必提供定义静态方法的类名,只需引入对应的命名空间,</span></span><span style="font-size: 12pt"><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">访问方式同实例方法</span></span><span style="color: rgba(0, 0, 0, 1)">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo2" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">扩展方法不能访问它所扩展的类型的私有成员。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">示例:</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> public static IEnumerable<TSource> MyWhere<TSource>(
this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
foreach (TSource item in source)
{
if (predicate(item))
yield return item;
}
}</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l9 level1 lfo1" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Yield</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">迭代器,延迟计算</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l6 level1 lfo25" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Yield</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">迭代器</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">在上面定义的</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">MyWhere</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">扩展方法中,我们使用了</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">yield</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">迭代器。使我们不必“显示”实现</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">或</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerator</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">接口。只需要简单的使用</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> yield </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">关键字,由</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> JIT </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">编译器帮我们编译成实现</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">或</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerator </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">接口的对象(即:本质还是传统遍历,只是写法上非常简洁),就能使用</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">foreach</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">进行遍历。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-char-indent-count: 0" align="justify"><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体; color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">请详看:</span></span></span></strong><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline"><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">《</span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal"><span style="font-family: calibri">C#</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">稳固基础:传统遍历与迭代器》</span></span></span></strong></span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,通过这篇博文我们可以学会如何实现</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">foreach</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">遍历以及</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">foreach</span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">执行遍历的详细过程如下图所示:</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-char-indent-count: 0" align="justify"><img src="//images0.cnblogs.com/blog/106337/201311/24212814-a30e8f60ed294cd69aed2036bf1c9bfa.png" alt="image" width="566" height="255" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 10.5pt; mso-char-indent-count: 1.0" align="justify"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l6 level1 lfo25" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">延迟计算(</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Lazy evaluation</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">)</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l12 level1 lfo26" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">a)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">定义:来源自函数式编程,在函数式编程里,将函数作为参数来传递,传递过程中不会执行函数内部耗时的计算,直到需要这个计算结果的时候才调用,这样就可以因为避免一些不必要的计算而改进性能。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l12 level1 lfo26" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">b)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Yield</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">迭代器的延迟计算原理:</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">JIT </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">编译器会帮助我们将迭代主体编译到</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerator.MoveNext()</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">方法中。从上图</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">foreach</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">的执行流程来看,迭代主体是在每次遍历执行到</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> in </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">的时候才会调用</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">MoveNext()</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">,所以其迭代器耗时的指令是延迟计算的。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63.55pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l12 level1 lfo26" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">c)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LINQ</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">查询的延迟计算原理:通过给</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">扩展方法传递方法委托,作为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">yield</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">迭代器的主体,让遍历执行到</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">MoveNext()</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">时才执行耗时的指令。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l9 level1 lfo1" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">5.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">表达式树</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">表达式树:表达式树允许在运行期间建立对数据源的查询,因为表达式树存储在程序集中。(后续在</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Linq to entities</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">博文中与</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Queryable</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">一起解说)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="background: rgba(49, 132, 155, 1); word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-background-themecolor: accent5; mso-background-themeshade: 191" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 14pt">Language Integrated Query</span></span></span><span style="font-size: 14pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 14pt">,语言集成查询)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><img src="//images0.cnblogs.com/blog/106337/201311/24212815-76fa2307988141f48e8e193b0005c92f.png" alt="image" width="661" height="250" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: calibri"><span style="font-size: 12pt"> </span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">从这幅图中,我们可以知道</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">包括五个部分:</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Objects</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to XML</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to SQL</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to DataSet</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Entities</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<table class="MsoTableGrid" style="border-collapse: collapse; word-break: normal; margin-left: 5.4pt; line-height: normal; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-table-layout-alt: fixed; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td style="padding: 0 5.4pt; mso-border-alt: solid windowtext .5pt; border: 1pt solid rgba(0, 0, 0, 1)" valign="top" width="104">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
</td>
<td style="border-top: 1pt solid rgba(0, 0, 0, 1); border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="132">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">程序集</span></span></span></p>
</td>
<td style="border-top: 1pt solid rgba(0, 0, 0, 1); border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="113">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">命名空间</span></span></span></p>
</td>
<td style="border-top: 1pt solid rgba(0, 0, 0, 1); border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="211">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">描述</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="104">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">LINQ to Objects</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="132">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Core.dll</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="113">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Linq</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="211">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">提供对内存中集合操作的支持</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="104">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">LINQ to XML</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="132">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Xml.Linq.dll</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="113">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Xml.Linq</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="211">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">提供对</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">XML</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">数据源的操作的支持</span></span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="104">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">LINQ to SQL</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="132">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Data.Linq.dll</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="113">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Data.Linq</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="211">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">提供对</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Sql Server</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">数据源操作的支持。(微软已宣布不再更新,推荐使用</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Entities</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">)</span></span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="104">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">LINQ to DataSet</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="132">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Data.DataSetExtensions.dll</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="113">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">System.Data</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="211">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">提供对离线数据操作的支持。</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5; mso-yfti-lastrow: yes">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="104">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">LINQ to Entities</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="132">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">System.Core.dll </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">和</span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt"> System.Data.Entity.dll</span></span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="113">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">System.Linq </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">和</span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="line-height: normal"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline">System.Data.Objects</span></span></span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="211">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LINQ to Entities </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">是</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> Entity Framework </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">的一部分并且取代</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> LINQ to SQL </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">作为在数据库上使用</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> LINQ </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">的标准机制。(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Entity Framework </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">是由微软发布的开源对象</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">-</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">关系映射(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ORM</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">)框架,支持多种数据库。)</span></span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体; color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">目前,还可以下载其他第三方提供程序,例如</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal"><span style="font-family: calibri; color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline">LINQ to JSON</span></span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to MySQL</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Amazon</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Flickr</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">和</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to SharePoint</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)">。</span><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">无论使用什么数据源</span></span></strong><span style="color: rgba(0, 0, 0, 1)">,都可以通过</span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">使用相同的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">API</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">进行操作。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo27" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">怎样区分</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">操作时,使用的是哪个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">提供程序?</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri; color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">LINQ</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)">提供程序的实现方案是:</span><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">根据命名空间和第一个参数的类型来选择的</span></span><span style="color: rgba(0, 0, 0, 1)">。实现扩展方法的类的命名空间必须是打开的,否则扩展类就不在作用域内。</span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Eg</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:在</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Objects</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">中定义的</span></span><span style="line-height: normal"><span style="font-family: calibri"> <span style="line-height: normal" lang="EN-US">Where() </span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">方法参数和在</span></span><span style="line-height: normal"><span style="font-family: calibri"> <span style="line-height: normal" lang="EN-US">LINQ to Entities</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">中定义的</span></span><span style="line-height: normal"><span style="font-family: calibri"> <span style="line-height: normal" lang="EN-US">Where() </span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">方法实现是不同。</span></span></span></span><span style="line-height: normal"><span style="font-family: calibri"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-spacerun: yes"><span style="font-size: 12pt"> </span></span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // LINQ to Objects:
public static class Enumerable
{
public static IEnumerable<TSource> Where<TSource>(
this IEnumerable<TSource> source, Func<TSource, bool> predicate);
}
// LINQ to Entities
public static class Queryable
{
public static IQueryable<TSource> Where<TSource>(
this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
}</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"><span style="line-height: normal" lang="EN-US"> </span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo27" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LINQ</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">查询提供几种操作语法?</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-para-margin-left: 2.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LINQ</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">查询时有两种语法可供选择:查询表达式(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Query Expression</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">)和方法语法(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Fluent Syntax</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">)。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-para-margin-left: 2.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">.NET</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">公共语言运行库(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">CLR</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">)并不具有查询表达式的概念。所以,编译器会在程序编译时把查询表达式转换为方法语法,即对扩展方法的调用。所以使用方法语法会让我们更加接近和了解</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">的实现和本质,并且一些查询只能表示为方法调用。但另一方面,查询表达式通常会比较简单和易读。不管怎样,这两种语法是互相补充和兼容的,我们可以在一个查询中混合使用查询表达式和方法语法。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-para-margin-left: 2.0gd" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: calibri"><span style="font-size: 12pt"> </span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">以下扩展方法存在对应的查询表达式关键字:</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Where</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Select</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SelectMany</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">OrderBy</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ThenBy</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">OrderByDescending</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ThenByDescending</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupBy</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Join</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupJoin</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 21pt" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LINQ</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">查询表达式</span></span></span></span></p>
<table class="MsoTableGrid" style="border-collapse: collapse; word-break: normal; margin-left: 26.7pt; line-height: normal; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td style="padding: 0 5.4pt; mso-border-alt: solid windowtext .5pt; border: 1pt solid rgba(0, 0, 0, 1)" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">约束</span></span></span></p>
</td>
<td style="border-top: 1pt solid rgba(0, 0, 0, 1); border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri; color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">LINQ</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)">查询表达式</span><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">必须以</span></span></span></span><span style="color: rgba(255, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">from</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句开头,以</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">select</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">或</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">group</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句结束</span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">。</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" colspan="2" valign="top" width="532">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">关键字</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">功能</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">from</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">in</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">…</span></span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">指定要查找的数据源以及范围变量,多个</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">from</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">子句则表示从多个数据源查找数据。</span></span></span></span></p>
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><strong style="mso-bidi-font-weight: normal"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体; color: rgba(255, 0, 0, 1)"><span style="font-size: 12pt">注意:</span></span></span></strong><span style="color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">c#</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">编译器会把“复合</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">from</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句”的查询表达式转换为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SelectMany()</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">扩展方法。</span></span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">join</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">in</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">on</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">equals</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">…</span></span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">指定多个数据源的关联方式</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">let</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">引入用于存储查询表达式中子表达式结果的范围变量。通常能达到层次感会更好,使代码更易于阅读。</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">orderby</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">descending</span></span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">指定元素的排序字段和排序方式。当有多个排序字段时,由字段顺序确定主次关系,可指定升序和降序两种排序方式</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">where</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">指定元素的筛选条件。多个</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">where</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句则表示了并列条件,必须全部都满足才能入选。每个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">where</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句可以使用谓词</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">&&</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">||</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">连接多个条件表达式。</span></span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 8">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">group</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">指定元素的分组字段。</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 9">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">select</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">指定查询要返回的目标数据,</span></span><span style="font-size: 12pt"><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">可以指定任何类型,甚至是匿名类型</span></span><span style="color: rgba(0, 0, 0, 1)">。(目前通常被指定为匿名类型)</span></span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 10; mso-yfti-lastrow: yes">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="103">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">into</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="428">
<p class="MsoNormal" style="margin: 0; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">提供一个临时的标识符。该标识可以引用</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">join</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">group</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">和</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">select</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">子句的结果。</span></span></span></span></p>
<p class="MsoListParagraph" style="margin: 0 0 0 21pt; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l10 level1 lfo29" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">直接出现在</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">join</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句之后的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">into</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">关键字会被翻译为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupJoin</span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)">。</span><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">(</span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri; color: rgba(255, 0, 0, 1)">into</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(255, 0, 0, 1)">之前的查询变量可以继续使用)</span></span></span></p>
<p class="MsoListParagraph" style="margin: 0 0 0 21pt; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l10 level1 lfo29" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">select</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">或</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">group</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句之后的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">into</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">它会重新开始一个查询,让我们可以继续引入</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">where, orderby</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">和</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">select</span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)">子句,它是对分步构建查询表达式的一种简写方式。</span><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">(</span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri; color: rgba(255, 0, 0, 1)">into</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(255, 0, 0, 1)">之前的查询变量都不可再使用)</span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 24pt; text-justify: inter-ideograph; line-height: normal; text-indent: -24pt; mso-char-indent-count: -2.0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: calibri"><span style="font-size: 12pt"> </span></span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 24pt; text-justify: inter-ideograph; line-height: normal; text-indent: -24pt; mso-char-indent-count: -2.0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt"> 书写模版如下:</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"> <img src="//images0.cnblogs.com/blog/106337/201311/24212817-34ef9463789647eca05084247859ce76.png" alt="image" width="560" height="478" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(255, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">下面以</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> LINQ to Objects </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">为例,介绍</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">中的各种查询。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="background: rgba(49, 132, 155, 1); word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-background-themecolor: accent5; mso-background-themeshade: 191" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 14pt; color: rgba(0, 0, 0, 1)">LINQ to Objects</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LINQ to Objects </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">提供对内存中集合操作的支持,由程序集</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">System.Core.dll</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">中</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">System.Linq</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">命名空间下的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Enumerable</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">静态类提供。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">运算符图解:</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><img src="//images0.cnblogs.com/blog/106337/201311/24212826-9ed18e26f3da4adeac19c834f1aad66d.png" alt="image" width="902" height="573" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l27 level1 lfo20" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">一、</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">示例业务背景介绍</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 2.0gd" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体; color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">示例参考</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">《</span></span></span><span style="line-height: normal"><span style="font-family: calibri">C#</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">高级编程(第六版)》</span></span></span></span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">章节(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">P267 - P296</span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">),进行改编。</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 2.0gd" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">打开示例代码我们看到:</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 2.0gd" align="justify"><img src="//images0.cnblogs.com/blog/106337/201311/24212837-e6963e9242504807b4b1799e6fb7118c.png" alt="image" width="220" height="159" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 2.0gd" align="justify"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l30 level1 lfo19; mso-para-margin-left: 2.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Racer.cs </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">文件,定义</span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline"><span style="font-family: 宋体">一级方程式<span style="line-height: normal" lang="EN-US">世界车手<span style="line-height: normal" lang="EN-US">冠军</span></span></span></span></span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">信息。</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l30 level1 lfo19; mso-para-margin-left: 2.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Team.cs </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">文件,定义</span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体; color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline">一级方程式世界车队冠军</span></span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">信息。</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l30 level1 lfo19; mso-para-margin-left: 2.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Formula1.cs </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">文件,包含两个重要静态方法:(</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">F1</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">是</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">"Formula One"</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">的缩写)</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l25 level1 lfo21" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">GetChampions()</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回一组车手列表。这个列表包含了</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">1950</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">到</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">2007</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">年之间的所有一级方程式世界<span style="color: rgba(255, 0, 0, 1)">车手</span>冠军。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l25 level1 lfo21" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">GetContructorChampions()</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回一组车队列表。这个列表包含了</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">1985</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">到</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">2007</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">年之间的所有一级方程式世界<span style="color: rgba(255, 0, 0, 1)">车队</span>冠军,车队冠军是从</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">1985</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">年开始设立的(是由国际汽车联合会颁发给一个赛季内最成功的一级方程式车队的奖励)。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-spacerun: yes"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l27 level1 lfo20" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">二、</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">各种</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">示例</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">过滤操作符</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">根据条件返回匹配元素的集合</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<T></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l21 level1 lfo7" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Where</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:根据返回</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">bool</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">值的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Func</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">委托参数过滤元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:查询获得车手冠军次数大于</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">15</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">次且是</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Austria</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">国家的一级方程式赛手</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // 查询表达式
var racer = from r in Formula1.GetChampions()
where r.Wins > 15 && r.Country == "Austria"
select r;
// 方法语法
var racer = Formula1.GetChampions().Where(r => r.Wins > 15
&& r.Country == "Austria");</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l21 level1 lfo7" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">OfType<TResult></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:接收一个非泛型的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">集合,根据</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">OfType</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">泛型类型参数过滤元素,只返回</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">TResult</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">类型的元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:过滤</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">object</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">数组中的元素,返回字符串类型的数组。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> object[] data = { "one", 2, 3, "four", "five", 6 };
var query = data.OfType<string>(); // "one", "four", "five"</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l21 level1 lfo7" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Distinct</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:删除序列中重复的元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l21 level1 lfo7" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt"> 如何按属性进行 Distinct() ? -- 扩展:DistinctBy</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">投影操作符</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l24 level1 lfo22" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Select </span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">将序列的每个元素经过</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">lambda</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">表达式处理后投影到一个新类型元素上。(与</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SelectMany</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">不同在于,若单个元素投影到</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<TResult></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Select</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">不会对多个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<TResult></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">进行合并)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 2.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="line-height: normal; mso-tab-count: 1"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">API</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> public static IEnumerable<TResult> Select<TSource, TResult>(
this IEnumerable<TSource> source
, Func<TSource, TResult> selector); </pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l24 level1 lfo22" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="line-height: normal; mso-spacerun: yes"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">SelectMany </span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l17 level1 lfo23" align="justify"><span style="color: rgba(0, 0, 0, 1); font-size: 16px"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri">可以把多维集合降维,比如把二维的集合平铺成一个一维的集合。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l17 level1 lfo23" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">a)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">c#</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">编译器会把“复合</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">from</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句”的查询表达式转换为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SelectMany()</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">扩展方法。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l17 level1 lfo23" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">b)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">将序列的每个元素经过</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">lambda</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">表达式处理后投影到一个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">TResult</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,再将多个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">TResult</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">序列合并为一个返回序列</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">TResult</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">public static IEnumerable<TResult> SelectMany<TSource
, TResult>(this IEnumerable<TSource> source
, Func<TSource, IEnumerable<TResult>> selector);
//示例:
string[] fullNames = { "Anne Williams", "John Fred Smith", "Sue Green" };
IEnumerable<string> query = fullNames.SelectMany(name => name.Split());
foreach (string name in query)
Console.Write(name + "|");
// Anne|Williams|John|Fred|Smith|Sue|Green|
//如果使用Select,则需要双重循环。
IEnumerable<string[]> query = fullNames.Select(name => name.Split());
foreach (string[] stringArray in query)
foreach (string name in stringArray)
Console.Write(name + "|");
// Anne|Williams|John|Fred|Smith|Sue|Green|</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l17 level1 lfo23" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">c)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">将序列的每个元素经过</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">lambda</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">表达式处理后投影到一个</span></span><span style="line-height: normal"><span style="font-family: calibri"> <span style="line-height: normal" lang="EN-US">IEnumerable<</span></span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">TCollection</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,再将多个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">TCollection</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">序列合并为一个返回序列</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">TCollection</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,并对其中每个元素调用结果选择器函数。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">public static IEnumerable<TResult> SelectMany<TSource, TCollection
, TResult>(this IEnumerable<TSource> source
, Func<TSource, IEnumerable<TCollection>> collectionSelector
, Func<TSource, TCollection, TResult> resultSelector);<br><br></pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">示例:</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 63pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:(</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Racer</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">类定义了一个属性</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Cars</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Cars</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">是一个字符串数组。)过滤驾驶</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Ferrari</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">的所有冠军</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // 查询表达式
var ferrariDrivers = from r in Formula1.GetChampions()
from c in r.Cars
where c == "Ferrari"
orderby r.LastName
select r.FirstName + " " + r.LastName;
// 方法语法
var ferrariDrivers = Formula1.GetChampions()
.SelectMany(
r => r.Cars,
(r, c) => new { Racer = r, Car = c }
)
.Where(r => r.Car == "Ferrari")
.OrderBy(r => r.Racer.LastName)
.Select(r => r.Racer.FirstName + " " + r.Racer.LastName);<br><br></pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">排序操作符</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l28 level1 lfo8" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">OrderBy<TSource,TKey></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">OrderByDescending<TSource,TKey></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:根据指定键按升序或降序对集合进行第一次排序,输出</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IOrderedEnumerable<TSource></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l28 level1 lfo8" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ThenBy<TSource,TKey></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ThenByDescending<TSource,TKey></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:只会对那些在前一次排序中拥有相同键值的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">elements</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">重新根据指定键按升序或降序排序。输入</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IOrderedEnumerable <TSource></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:获取车手冠军列表,并依次按照</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Country</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">升序、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LastName</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">降序、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">FirstName</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">升序进行排序。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // 查询表达式
var racers = from r in Formula1.GetChampions()
orderby r.Country, r.LastName descending, r.FirstName
select r;
// 方法语法
var racers = Formula1.GetChampions()
.OrderBy(r => r.Country)
.ThenByDescending(r => r.LastName)
.ThenBy(r => r.FirstName);</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l28 level1 lfo8" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Reverse<TSource></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:反转集合中所有元素的顺序。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">连接操作符</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="font-family: 宋体"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-size: 12pt">先准备两个集合,如下:</span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt">(</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">racers</span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体">表示在</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1958</span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体">到</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1965</span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体">年间获得车手冠军的信息列表;</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">teams</span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体">表示在</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1958</span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体">到</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1965</span></span><span style="font-family: 宋体"><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt">年间获得车队冠军的信息列表</span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">)</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> var racers = from r in Formula1.GetChampions()
from y in r.Years
where y > 1958 && y < 1965
select new
{
Year = y,
Name = r.FirstName + " " + r.LastName
};
var teams = Formula1.GetContructorChampions()
.SelectMany(y => y.Years, (t, y) => new { Year = y, Name = t.Name })
.Where(ty => ty.Year > 1958 && ty.Year < 1965);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 21pt; mso-layout-grid-align: none" align="left"><span style="color: rgba(255, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">注意:</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">join</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">on</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…关键字后的相等使用</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">equals</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">关键字。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 21pt; mso-layout-grid-align: none" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21.3pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0; mso-list: l7 level1 lfo10" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Join</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:基于匹配键对两个序列的元素进行关联。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21.3pt; text-justify: inter-ideograph; line-height: normal; text-indent: 20.7pt; mso-char-indent-count: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">API:</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(
this IEnumerable<TOuter> outer, IEnumerable<TInner> inner
, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector
, Func<TOuter, TInner, TResult> resultSelector);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; line-height: normal; text-indent: 21pt; mso-para-margin-left: 4.0gd; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:返回</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1958</span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体">到</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1965</span></span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体"><span style="font-size: 12pt">年间的车手冠军和车队冠军信息,根据年份关联</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> //查询表达式
var racersAndTeams = from r in racers
join t in teams on r.Year equals t.Year
select new
{
Year = r.Year,
Racer = r.Name,
Team = t.Name
};
// 方法语法
var racersAndTeams = racers.Join(teams
, r => r.Year, t => t.Year
, (r, t) => new { Year = r.Year, Racer = r.Name, Team = t.Name }
);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l7 level1 lfo10" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">GroupJoin</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:基于键相等对两个序列的元素进行关联并对结果进行分组。常应用于返回“主键对象</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">-</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">外键对象集合”形式的查询。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">API</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(
this IEnumerable<TOuter> outer, IEnumerable<TInner> inner
, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector
, Func<TOuter, IEnumerable<TInner>, TResult> resultSelector);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; line-height: normal; text-indent: 21pt; mso-para-margin-left: 4.0gd; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:返回</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1958</span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体">到</span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体">1965</span></span></span><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体"><span style="font-size: 12pt">年间的车手冠军和车队冠军信息,根据年份关联并分组</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(255, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">注意:直接出现在</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">join</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句之后的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">into</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">关键字会被翻译为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupJoin</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,而在</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">select</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">或</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">group</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">子句之后的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">into</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">表示继续一个查询。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // 查询表达式
var racersAndTeams = from r in racers
join t in teams on r.Year equals t.Year
into groupTeams
select new
{
Year = r.Year,
Racer = r.Name,
GroupTeams = groupTeams
};
// 方法语法
var racersAndTeams = racers
.GroupJoin(teams
, r => r.Year, t => t.Year
, (r, t) => new { Year = r.Year, Racer = r.Name, GroupTeams = t }
);</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l7 level1 lfo10" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">join</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">on</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">…</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">equals</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">…支持多个键关联</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">可以使用匿名类型来对多个键值进行</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Join</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">,如下所示:</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-spacerun: yes"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">from x in sequenceX</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-spacerun: yes"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">join y in sequenceY on new { K1 = x.Prop1, K2 = x.Prop2 }</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-spacerun: yes"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">equals new { K1 = y.Prop3, K2 = y.Prop4 }</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-spacerun: yes"><span style="font-size: 12pt"> </span></span><span style="font-size: 12pt">...</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">两个匿名类型的结构必须完全一致,这样编译器会把它们对应到同一个实现类型,从而使连接键值彼此兼容。</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l7 level1 lfo10" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Join</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">与</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupJoin</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">结果集对比(为了实现此业务,将</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">1959</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">年设置了两个车队冠军)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"> <img src="//images0.cnblogs.com/blog/106337/201311/24213039-6eb5ad8f840946dd99f3217315007204.png" alt="image" width="561" height="340" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">5.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">分组操作符</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l26 level1 lfo9" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">返回值为</span></span></span><span style="font-size: 12pt"><span style="line-height: normal"><span style="font-family: calibri"> <span style="line-height: normal" lang="EN-US">IEnumerable<IGrouping<TKey, TSource>> </span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">,根据指定的键选择器函数对序列中的元素进行分组。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">业务说明:按城市分组,获取每个城市的车手冠军。</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // 查询表达式
var countries = from r in Formula1.GetChampions()
group r by r.Country into g
select new { Country = g.Key, Racers = g };
// 方法语法
var countries = Formula1.GetChampions()
.GroupBy(r => r.Country)
.Select(g => new { Country = g.Key, Racer = g });</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l26 level1 lfo9" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">返回值为</span></span></span><span style="font-size: 12pt"><span style="line-height: normal"><span style="font-family: calibri"> <span style="line-height: normal" lang="EN-US">IEnumerable<TResult></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">,根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">业务说明:按城市分组,获取每个城市的车手冠军。</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // 方法语法 (等价上面两种方式)
var countries = Formula1.GetChampions()
.GroupBy(r => r.Country, (k, g) => new { Country = k, Racer = g });</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">6.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">量词操作符</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">如果元素序列满足指定的条件,</span></span><span style="font-size: 12pt"><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">量词操作符就返回布尔值</span></span><span style="color: rgba(0, 0, 0, 1)">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l13 level1 lfo11" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Any</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:确定序列是否包含任何元素;或确定序列中的任何元素是否都满足条件。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l13 level1 lfo11" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">All</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:确定序列中的所有元素是否满足条件。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l13 level1 lfo11" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Contains</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:确定序列是否包含指定的元素。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> // 获取是否存在姓为“Schumacher”的车手冠军
var hasRacer_Schumacher = Formula1.GetChampions()
.Any(r => r.LastName == "Schumacher");</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">7.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">分区操作符</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">添加在查询的“最后”,返回集合的一个子集。</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l20 level1 lfo12" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Take</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:从序列的开头返回指定数量的连续元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l20 level1 lfo12" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">TakeWhile</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:只要满足指定的条件,就会返回序列的元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l20 level1 lfo12" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Skip</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:跳过序列中指定数量的元素,然后返回剩余的元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l20 level1 lfo12" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">SkipWhile</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:将车手冠军列表按每页</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">5</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">个名字进行分页。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> private static void Paging()
{
int pageSize = 5;
int numberPages = (int)Math.Ceiling(
Formula1.GetChampions().Count() / (double)pageSize);
for (int page = 0; page < numberPages; page++)
{
Console.WriteLine("Page {0}", page);
var racers = (
from r in Formula1.GetChampions()
orderby r.LastName
select r.FirstName + " " + r.LastName
)
.Skip(page * pageSize).Take(pageSize);
foreach (var name in racers)
{
Console.WriteLine(name);
}
Console.WriteLine();
}
}</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">8.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">集合操作符</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Union</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:并集,返回两个序列的并集,去掉重复元素。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Concat</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:并集,返回两个序列的并集。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Intersect</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:交集,返回两个序列中都有的元素,即交集。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Except</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:差集,返回只出现在一个序列中的元素,即差集。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt"> eg:</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt"> var strList3 = strList1.Except(strList2).ToList();</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt"> 这⾥的意思是strList1中哪些是strList2中没有的,并将获得的差值存放在strList3 (即:strList1中有,strList2中没有)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:获取使用车型</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">”Ferrari”</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">和车型</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">”Mclaren”</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">都获得过车手冠军车手列表</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> Func<string, IEnumerable<Racer>> racersByCar =
Car => from r in Formula1.GetChampions()
from c in r.Cars
where c == Car
orderby r.LastName
select r;
foreach (var racer in racersByCar("Ferrari")
.Intersect(racersByCar("McLaren")))
{
Console.WriteLine(racer);
}</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">5)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Zip</span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="color: rgba(0, 0, 0, 1)">:通过使用指定的委托函数合并两个序列,</span><span style="line-height: normal"><span style="color: rgba(255, 0, 0, 1)">集合的总个数不变</span></span><span style="color: rgba(0, 0, 0, 1)">。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">API</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">public static IEnumerable<TResult> Zip<TFirst, TSecond, TResult>(
this IEnumerable<TFirst> first, IEnumerable<TSecond> second
, Func<TFirst, TSecond, TResult> resultSelector);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; line-height: normal; text-indent: 0" align="left"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">示例:合并</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">html</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">开始标签和结束标签</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> string[] start = {"<html>","<head>","<body>" };
string[] end = { "</html>", "</head>", "</body>" };
var tags = start.Zip(end, (s, e) => { return s + e; });
foreach (string item in tags)
{
Console.WriteLine(item);
}</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l14 level1 lfo13" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">6)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">SequenceEqual</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:判断两个序列是否相等,需要内容及顺序都相等。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"><span style="line-height: normal; mso-ascii-font-family: nsimsun; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: nsimsun; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">示例:</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> int[] arr1 = { 1, 4, 7, 9 };
int[] arr2 = { 1, 7, 9, 4 };
Console.WriteLine("排序前 是否相等:{0}"
, arr1.SequenceEqual(arr2) ? "是" : "否");// 否
Console.WriteLine();
Console.WriteLine("排序后 是否相等:{0}"
, arr1.SequenceEqual(arr2.OrderBy(k => k)) ? "是" : "否"); // 是</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="font-family: 新宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">9.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">元素操作符</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">这些元素操作符仅返回一个元素,不是</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable<TSource></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">。(默认值:值类型默认为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">0</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,引用类型默认为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">null</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">)</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">First</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:返回序列中的第一个元素;如果是空序列,此方法将引发异常。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">FirstOrDefault</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回序列中的第一个元素;如果是空序列,则返回默认值</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">default(TSource)</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Last</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:返回序列的最后一个元素;如果是空序列,此方法将引发异常。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LastOrDefault</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回序列中的最后一个元素;如果是空序列,则返回默认值</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">default(TSource)</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">5)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Single</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:返回序列的唯一元素;如果是空序列或序列包含多个元素,此方法将引发异常。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">6)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">SingleOrDefault</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回序列中的唯一元素;如果是空序列,则返回默认值</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">default(TSource)</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">;如果该序列包含多个元素,此方法将引发异常。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">7)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ElementAt</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回序列中指定索引处的元素,索引从</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">0</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">开始;如果索引超出范围,此方法将引发异常。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l8 level1 lfo14" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">8)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ElementAtOrDefault</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回序列中指定索引处的元素,索引从</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">0</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">开始;如果索引超出范围,则返回默认值</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">default(TSource)</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">业务说明:获取冠军数排名第三的车手冠军</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> var Racer3 = Formula1.GetChampions()
.OrderByDescending(r => r.Wins)
.ElementAtOrDefault(2);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">10.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">合计操作符</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l3 level1 lfo15" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Count</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回一个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> System.Int32</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">,表示序列中的元素的总数量。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l3 level1 lfo15" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">LongCount</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回一个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> System.Int64</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">,表示序列中的元素的总数量。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l3 level1 lfo15" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Sum</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:计算序列中元素值的总和。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l3 level1 lfo15" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Max</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:返回序列中的最大值。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l3 level1 lfo15" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">5)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Min</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:返回序列中的最小值。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l3 level1 lfo15" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">6)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Average</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:计算序列的平均值。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l3 level1 lfo15" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">7)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Aggregate</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:对序列应用累加器函数。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Aggregate</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">比较复杂,所以只列出</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Aggregate</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">示例。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Aggregate</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">的第一个参数是算法的种子,即初始值。第二个参数是一个表达式,用来对每个元素进行计算(委托第一个参数是累加变量,第二个参数当前项)。第三个参数是一个表达式,用来对最终结果进行数据转换。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> int[] numbers = { 1, 2, 3 };
// 1+2+3 = 6
int y = numbers.Aggregate((prod, n) => prod + n);
// 0+1+2+3 = 6
int x = numbers.Aggregate(0, (prod, n) => prod + n);
// (0+1+2+3)*2 = 12
int z = numbers.Aggregate(0, (prod, n) => prod + n, r => r * 2);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">11.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">转换操作符</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l15 level1 lfo16" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Cast</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:将非泛型的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable </span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">集合元素转换为指定的泛型类型,若类型转换失败则抛出异常。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l15 level1 lfo16" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ToArray</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:从</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<T> </span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">创建一个数组。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l15 level1 lfo16" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ToList</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:从</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<T> </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">创建一个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> List<T></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l15 level1 lfo16" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">4)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ToDictionary</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:根据指定的键选择器函数,从</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<T> </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">创建一个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> Dictionary<TKey,TValue></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l15 level1 lfo16" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">5)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ToLookup</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:根据指定的键选择器函数,从</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<T> </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">创建一个</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> System.Linq.Lookup<TKey,TElement></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l15 level1 lfo16" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">6)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">DefaultIfEmpty</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:返回指定序列的元素;如果序列为空,则返回包含类型参数的默认值的单一元素集合。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; line-height: normal; text-indent: 21pt; mso-para-margin-left: 4.0gd; mso-layout-grid-align: none" align="left"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri; color: rgba(0, 0, 0, 1)"><span style="font-size: 12pt">Eg:</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">var defaultArrCount = (new int).DefaultIfEmpty().Count(); // 1</pre>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l15 level1 lfo16" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">7)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">AsEnumerable</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:返回类型为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<T> </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">。用于处理</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Entities</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">操作远程数据源与本地集合的协作。(后续在</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Entities</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">博文中会详细解说)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">ToLookup</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">使用比较复杂,所以以</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ToLookup</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">为示例。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Lookup</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">类似于</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Dictionary</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,不过,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Dictionary</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">每个键只对应一个值,而</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Lookup</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">则是</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">1</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">n </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">的映射。</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Lookup</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">没有公共构造函数,而且是不可变的。在创建</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Lookup</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">之后,不能添加或删除其中的元素或键。(可以将</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ToLookup </span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">视为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupBy</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">与</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ToDictionary</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">的功能合体)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">API</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
Func<TSource, TElement> elementSelector);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">业务说明:将车手冠军按其使用车型进行分组,并显示使用</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">”williams”</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">车型的车手名字。</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> ILookup<string, Racer> racers =
(from r in Formula1.GetChampions()
from c in r.Cars
select new
{
Car = c,
Racer = r
}
).ToLookup(cr => cr.Car, cr => cr.Racer);
if (racers.Contains("Williams"))
{
foreach (var williamsRacer in racers["Williams"])
{
Console.WriteLine(williamsRacer);
}
}</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l18 level1 lfo6" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">12.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">生成操作符</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">生成操作符返回一个新的集合。(三个生成操作符不是扩展方法,而是返回序列的正常静态方法)</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l29 level1 lfo17" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Empty</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:生成一个具有指定类型参数的空序列</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<T></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l29 level1 lfo17" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Range</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:生成指定范围内的整数的序列</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<Int32></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l29 level1 lfo17" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">3)</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Repeat</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">:生成包含一个重复值的序列</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"> IEnumerable<T></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-para-margin-left: 2.0gd" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">API</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">:</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">public static IEnumerable<TResult> Empty<TResult>();
public static IEnumerable<int> Range(int start, int count);
public static IEnumerable<TResult> Repeat<TResult>(TResult element, int count);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l27 level1 lfo20" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">三、</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Linq to Objects</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">中的延迟计算</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 21pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Linq</span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">查询的延迟计算原理:通过给</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">扩展方法传递方法委托,作为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">yield</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">迭代器的主体,让遍历执行到</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">MoveNext()</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">时才执行耗时的指令。</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l4 level1 lfo30" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">1.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt">Linq</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">延迟计算的注意点</span></span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> IEnumerable<char> query = "Not what you might expect";
foreach (char item in "aeiou")
query = query.Where(c => c != item);
// 只删除了'u'----Not what yo might expect
foreach (char c in query)
Console.Write(c);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">我们原本的期望结果是:删除掉字符串中所有的原音字母。但现在只删除</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">’u’</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">因为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="color: rgba(255, 0, 0, 1)">item</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="color: rgba(255, 0, 0, 1)">变量是循环外部声明的</span>,同一个变量重复声明更新</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">,</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">所以结束当前循环时,item记录的是循环最后一个值</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,即结束当前循环后再执行的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">lambda</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">表达式引用item值为</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">'u'</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">。(注意 .NET4.5 对这一实现有变动,后面有介绍)</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">为了解决这个问题,必须将循环变量赋值到一个在循环代码块内声明的变量:</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> IEnumerable<char> query1 = "Not what you might expect";
foreach (char item in "aeiou")
{
char temp = item;
query1 = query1.Where(c => c != temp);
}
// Nt wht y mght xpct
foreach (char c in query1)
Console.Write(c);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt; mso-char-indent-count: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="color: rgba(0, 0, 0, 1); font-family: 宋体"><span style="font-size: 12pt">园友 </span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="color: rgba(0, 0, 255, 1); font-family: Calibri"><span style="text-decoration: underline"><strong>@JulioZou</strong> </span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">反馈了一个问题,上面延迟计算的示例在</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: Calibri">.NET4.5</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">环境下两段代码最后输出都是:“</span></span></span><span style="line-height: normal; mso-bidi-font-family: nsimsun; mso-font-kerning: 0pt" lang="EN-US"><span style="color: rgba(0, 128, 0, 1); font-family: 新宋体">Nt wht y mght xpct</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">”。现在看下原因:</span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">从</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: Calibri">Reflector</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">工具看对于代码段一两者的编译情况是不一样的:</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><img src="//images0.cnblogs.com/blog/106337/201311/25223914-757a88dd4b5340fd942b24387e5c134b.png" alt="image" width="655" height="173" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border: 0"></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 10.5pt; mso-char-indent-count: 1.0" align="justify"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="line-height: normal; mso-tab-count: 1"><span style="font-family: Calibri"><span style="font-size: 12pt"> </span></span></span></span><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">即,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: Calibri">.NET 4.5</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">会自己生成一个内部循环变量。更详细的分析可见</span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="color: rgba(0, 0, 255, 1)"><span style="text-decoration: underline"><span style="font-size: 12pt"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">《<span style="line-height: normal" lang="EN-US">关于</span></span></span></span><span style="font-family: Calibri">foreach</span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体">语句在</span></span></span><span style="font-family: Calibri">C#4.5</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal" lang="EN-US"><span style="font-family: 宋体"><span style="font-size: 12pt">中的改进</span><span style="line-height: normal" lang="EN-US"><span style="font-size: 12pt">》</span></span></span></span></span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: Calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> 所以演示延迟计算,可通过此段代码进行说明:</span></span></span></p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"> IEnumerable<char> query = "Not what you might expect";
var item = 'a';
query = query.Where(c => c != item);
item = 'e';
query = query.Where(c => c != item);
item = 'i';
query = query.Where(c => c != item);
item = 'o';
query = query.Where(c => c != item);
item = 'u';
query = query.Where(c => c != item);
// 只删除了'u'----Not what yo might expect
foreach (char c in query)
Console.Write(c);</pre>
<p class="MsoNormal" style="word-break: normal; margin: 0; line-height: normal; text-indent: 0; mso-layout-grid-align: none" align="left"> </p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l4 level1 lfo30" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="line-height: normal; mso-list: ignore"><span style="font-family: calibri"><span style="font-size: 12pt">2.</span></span><span style="line-height: normal"><span style="font-family: "Times New Roman""><span style="font-size: 7pt"> </span></span></span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">整理</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Linq to Objects</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">中运算符延迟计算特性</span></span></span></span></p>
<p class="MsoListParagraph" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 0; mso-char-indent-count: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">按字母顺序整理:</span></span></span></p>
<table class="MsoTableGrid" style="border-collapse: collapse; word-break: normal; margin-left: 26.7pt; line-height: normal; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td style="padding: 0 5.4pt; mso-border-alt: solid windowtext .5pt; border: 1pt solid rgba(0, 0, 0, 1)" valign="top" width="160">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">具有延迟计算的运算符</span></span></span></p>
</td>
<td style="border-top: 1pt solid rgba(0, 0, 0, 1); border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="371">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">Cast</span></span></span><span style="font-size: 12pt"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Concat</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">DefaultIfEmpty</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Distinct</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Except</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupBy</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">GroupJoin</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Intersect</span> <br></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Join</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">OfType</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">OrderBy</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">OrderByDescending</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Repeat</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Reverse</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Select</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SelectMany</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Skip</span>
<br></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SkipWhile</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Take</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">TakeWhile</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ThenBy</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ThenByDescending</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Union</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Where</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">Zip</span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 1pt solid rgba(0, 0, 0, 1); mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="160">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">立即执行的运算符</span></span></span></p>
</td>
<td style="border-top: 3px none; border-right: 1pt solid rgba(0, 0, 0, 1); border-bottom: 1pt solid rgba(0, 0, 0, 1); padding: 0 5.4pt; border-left: 3px none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="371">
<p class="MsoNormal" style="margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">Aggregate</span></span></span><span style="font-size: 12pt"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">All</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Any</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Average</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Contains</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Count</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ElementAt</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ElementAtOrDefault</span>
<br></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Empty</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">First</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">FirstOrDefault</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Last</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LastOrDefault</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LongCount</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Max</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Min</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span></span><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Range</span>
<br></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SequenceEqual</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Single</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">SingleOrDefault</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">Sum</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ToArray</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ToDictionary</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">ToList</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">,</span></span></span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">ToLookup</span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">特殊的</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">AsEnumerable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">运算符,用于处理</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ to Entities</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">操作远程数据源,将</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IQueryable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">远程数据立即转化为本地的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">集合。若</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">AsEnumerable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">接收参数是</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">IEnumerable</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">内存集合则什么都不做。</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 42pt; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">示例代码截图:(已在文章开头提供下载连接)</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><img src="//images0.cnblogs.com/blog/106337/201311/24213041-a7fc82fdabd84e9c9f2a76f10e0b31f4.png" alt="image" width="738" height="375" title="image" border="0" style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0"></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"><span style="color: rgba(0, 0, 0, 1)"><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">本博文就到此结束了,通过本博文,我们学会什么是</span></span></span><span style="font-size: 12pt"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">查询、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">中涉及的</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">.NET</span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体">基础知识、</span></span><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri">LINQ</span></span></span><span style="line-height: normal; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span style="font-family: 宋体"><span style="font-size: 12pt">中各种运算符、延迟计算等等……</span></span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 21pt" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> 其他阅读:</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 30px; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">Linq多表左外连接left join查询</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 30px; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">Linq扩展库:MoreLINQ (eg: LeftJoin / RightJoin / FullJoin)</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 30px; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)">如何获取 Linq 查询结果集合中的索引?</span></span></span></p>
<p class="MsoNormal" style="word-break: normal; margin: 0 0 0 30px; line-height: normal; text-indent: 0" align="justify"> </p>
<p class="MsoNormal" style="word-break: normal; margin: 0; text-justify: inter-ideograph; line-height: normal; text-indent: 0" align="justify"><span style="line-height: normal" lang="EN-US"><span style="font-family: calibri"><span style="font-size: 12pt; color: rgba(0, 0, 0, 1)"> </span></span></span></p>
</div>
<div id="MySignature" role="contentinfo">
<br>
<div>
<p id="PSignature" style="border-top: #e0e0e0 1px dashed; border-right: #e0e0e0 1px dashed; border-bottom: #e0e0e0 1px dashed; border-left: #e0e0e0 1px dashed; padding-top: 5px; padding-right: 10px; padding-bottom: 10px; padding-left: 150px; background: url("https://images.cnblogs.com/cnblogs_com/heyuquan/395414/r_IMG_sign.jpg") #e5f1f4 no-repeat 1% 50%; font-family: 微软雅黑; font-size: 11px">
<br>
作者:<span style="font-weight: bold; font-size: large">滴答的雨</span>
<br>
出处:http://www.cnblogs.com/heyuquan/
<br>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
<br>
<br>
<span style="font-size: large; color: #F00">欢迎园友讨论下自己的见解,及向我推荐更好的资料。
<br>
本文如对您有帮助,还请多帮 <b>【推荐】</b> 下此文。
<br>
谢谢!!! (*^_^*)</span><br>
<span style="font-size: 150%; font-weight: bold">技术群:<img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="广西IT技术交流" title="广西IT技术交流">(339322839广西IT技术交流),欢迎你的加入</span>
</p>
</div><br><br>
来源:https://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html
頁:
[1]