<?xml version="1.0" encoding="utf-8"?>
<Type Name="Enumerable" FullName="System.Linq.Enumerable">
  <TypeSignature Language="C#" Value="public static class Enumerable" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit Enumerable extends System.Object" />
  <AssemblyInfo>
    <AssemblyName>System.Core</AssemblyName>
    <AssemblyVersion>3.5.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The methods in this class provide an implementation of the standard query operators for querying data sources that implement <see cref="T:System.Collections.Generic.IEnumerable`1" />. The standard query operators are general purpose methods that follow the vbteclinq pattern and enable you to express traversal, filter, and projection operations over data in any .NET-based programming language.</para>
      <para>The majority of the methods in this class are defined as extension methods that extend <see cref="T:System.Collections.Generic.IEnumerable`1" />. This means they can be called like an instance method on any object that implements <see cref="T:System.Collections.Generic.IEnumerable`1" />.</para>
      <para>Methods that are used in a query that returns a sequence of values do not consume the target data until the query object is enumerated. This is known as deferred execution. Methods that are used in a query that returns a singleton value execute and consume the target data immediately.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Provides a set of static (Shared in Visual Basic) methods for querying objects that implement <see cref="T:System.Collections.Generic.IEnumerable`1" />.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName="Aggregate&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource Aggregate&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TSource,TSource&gt; func);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource Aggregate&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`3&lt;!!TSource, !!TSource, !!TSource&gt; func) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="func" Type="System.Func&lt;TSource,TSource,TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Aggregate``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,``0})" /> method makes it simple to perform a calculation over a sequence of values. This method works by calling <paramref name="func" /> one time for each element in <paramref name="source" /> except the first one. Each time <paramref name="func" /> is called, <see cref="M:System.Linq.Enumerable.Aggregate``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,``0})" /> passes both the element from the sequence and an aggregated value (as the first argument to <paramref name="func" />). The first element of <paramref name="source" /> is used as the initial aggregate value. The result of <paramref name="func" /> replaces the previous aggregated value. <see cref="M:System.Linq.Enumerable.Aggregate``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,``0})" /> returns the final result of <paramref name="func" />.</para>
          <para>This overload of the <see cref="M:System.Linq.Enumerable.Aggregate``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,``0})" /> method isn't suitable for all cases because it uses the first element of <paramref name="source" /> as the initial aggregate value. You should choose another overload if the return value should include only the elements of <paramref name="source" /> that meet a certain condition. For example, this overload isn't reliable if you want to calculate the sum of the even numbers in <paramref name="source" />. The result will be incorrect if the first element is odd instead of even.</para>
          <para>To simplify common aggregation operations, the standard query operators also include a general purpose count method, <see cref="M:System.Linq.Enumerable.Count``1(System.Collections.Generic.IEnumerable{``0})" />, and four numeric aggregation methods, namely <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Decimal})" />, <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Decimal})" />, <see cref="M:System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable{System.Decimal})" />, and <see cref="M:System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable{System.Decimal})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Applies an accumulator function over a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The final accumulator value.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to aggregate over.</param>
        <param name="func">
          <attribution license="cc4" from="Microsoft" modified="false" />An accumulator function to be invoked on each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Aggregate&lt;TSource,TAccumulate&gt;">
      <MemberSignature Language="C#" Value="public static TAccumulate Aggregate&lt;TSource,TAccumulate&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, TAccumulate seed, Func&lt;TAccumulate,TSource,TAccumulate&gt; func);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TAccumulate Aggregate&lt;TSource, TAccumulate&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, !!TAccumulate seed, class System.Func`3&lt;!!TAccumulate, !!TSource, !!TAccumulate&gt; func) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TAccumulate</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TAccumulate" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="seed" Type="TAccumulate" />
        <Parameter Name="func" Type="System.Func&lt;TAccumulate,TSource,TAccumulate&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Aggregate``2(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1})" /> method makes it simple to perform a calculation over a sequence of values. This method works by calling <paramref name="func" /> one time for each element in <paramref name="source" />. Each time <paramref name="func" /> is called, <see cref="M:System.Linq.Enumerable.Aggregate``2(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1})" /> passes both the element from the sequence and an aggregated value (as the first argument to <paramref name="func" />). The value of the <paramref name="seed" /> parameter is used as the initial aggregate value. The result of <paramref name="func" /> replaces the previous aggregated value. <see cref="M:System.Linq.Enumerable.Aggregate``2(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1})" /> returns the final result of <paramref name="func" />.</para>
          <para>To simplify common aggregation operations, the standard query operators also include a general purpose count method, <see cref="M:System.Linq.Enumerable.Count``1(System.Collections.Generic.IEnumerable{``0})" />, and four numeric aggregation methods, namely <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Decimal})" />, <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Decimal})" />, <see cref="M:System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable{System.Decimal})" />, and <see cref="M:System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable{System.Decimal})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The final accumulator value.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to aggregate over.</param>
        <param name="seed">
          <attribution license="cc4" from="Microsoft" modified="false" />The initial accumulator value.</param>
        <param name="func">
          <attribution license="cc4" from="Microsoft" modified="false" />An accumulator function to be invoked on each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TAccumulate">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the accumulator value.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Aggregate&lt;TSource,TAccumulate,TResult&gt;">
      <MemberSignature Language="C#" Value="public static TResult Aggregate&lt;TSource,TAccumulate,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, TAccumulate seed, Func&lt;TAccumulate,TSource,TAccumulate&gt; func, Func&lt;TAccumulate,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TResult Aggregate&lt;TSource, TAccumulate, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, !!TAccumulate seed, class System.Func`3&lt;!!TAccumulate, !!TSource, !!TAccumulate&gt; func, class System.Func`2&lt;!!TAccumulate, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TResult</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TAccumulate" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="seed" Type="TAccumulate" />
        <Parameter Name="func" Type="System.Func&lt;TAccumulate,TSource,TAccumulate&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TAccumulate,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Aggregate``3(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``2})" /> method makes it simple to perform a calculation over a sequence of values. This method works by calling <paramref name="func" /> one time for each element in <paramref name="source" />. Each time <paramref name="func" /> is called, <see cref="M:System.Linq.Enumerable.Aggregate``3(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``2})" /> passes both the element from the sequence and an aggregated value (as the first argument to <paramref name="func" />). The value of the <paramref name="seed" /> parameter is used as the initial aggregate value. The result of <paramref name="func" /> replaces the previous aggregated value. The final result of <paramref name="func" /> is passed to <paramref name="resultSelector" /> to obtain the final result of <see cref="M:System.Linq.Enumerable.Aggregate``3(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``2})" />.</para>
          <para>To simplify common aggregation operations, the standard query operators also include a general purpose count method, <see cref="M:System.Linq.Enumerable.Count``1(System.Collections.Generic.IEnumerable{``0})" />, and four numeric aggregation methods, namely <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Decimal})" />, <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Decimal})" />, <see cref="M:System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable{System.Decimal})" />, and <see cref="M:System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable{System.Decimal})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The transformed final accumulator value.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to aggregate over.</param>
        <param name="seed">
          <attribution license="cc4" from="Microsoft" modified="false" />The initial accumulator value.</param>
        <param name="func">
          <attribution license="cc4" from="Microsoft" modified="false" />An accumulator function to be invoked on each element.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to transform the final accumulator value into the result value.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TAccumulate">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the accumulator value.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the resulting value.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="All&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static bool All&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool All&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <block subset="none" type="note">
            <para>This method does not return all the elements of a collection. Instead, it determines whether all the elements of a collection satisfy a condition.</para>
          </block>
          <para>The enumeration of <paramref name="source" /> is stopped as soon as the result can be determined.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into All() clause translates to an invocation of <see cref="M:System.Linq.Enumerable.All``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether all elements of a sequence satisfy a condition.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements to apply the predicate to.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Any&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static bool Any&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool Any&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <block subset="none" type="note">
            <para>This method does not return any one element of a collection. Instead, it determines whether the collection contains any elements.</para>
          </block>
          <para>The enumeration of <paramref name="source" /> is stopped as soon as the result can be determined.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Any() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Any" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether a sequence contains any elements.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if the source sequence contains any elements; otherwise, false.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to check for emptiness.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Any&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static bool Any&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool Any&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <block subset="none" type="note">
            <para>This method does not return any one element of a collection. Instead, it determines whether any elements of a collection satisfy a condition.</para>
          </block>
          <para>The enumeration of <paramref name="source" /> is stopped as soon as the result can be determined.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Any() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Any" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether any element of a sequence satisfies a condition.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if any elements in the source sequence pass the test in the specified predicate; otherwise, false.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to apply the predicate to.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="AsEnumerable&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; AsEnumerable&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; AsEnumerable&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.AsEnumerable``1(System.Collections.Generic.IEnumerable{``0})" /> method has no effect other than to change the compile-time type of <paramref name="source" /> from a type that implements <see cref="T:System.Collections.Generic.IEnumerable`1" /> to <see cref="T:System.Collections.Generic.IEnumerable`1" /> itself.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.AsEnumerable``1(System.Collections.Generic.IEnumerable{``0})" /> can be used to choose between query implementations when a sequence implements <see cref="T:System.Collections.Generic.IEnumerable`1" /> but also has a different set of public query methods available. For example, given a generic class Table that implements <see cref="T:System.Collections.Generic.IEnumerable`1" /> and has its own methods such as Where, Select, and SelectMany, a call to Where would invoke the public Where method of Table. A Table type that represents a database table could have a Where method that takes the predicate argument as an expression tree and converts the tree to SQL for remote execution. If remote execution is not desired, for example because the predicate invokes a local method, the <see cref="M:System.Linq.Enumerable.AsEnumerable``1(System.Collections.Generic.IEnumerable{``0})" /> method can be used to hide the custom methods and instead make the standard query operators available.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the input typed as <see cref="T:System.Collections.Generic.IEnumerable`1" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The input sequence typed as <see cref="T:System.Collections.Generic.IEnumerable`1" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to type as <see cref="T:System.Collections.Generic.IEnumerable`1" />.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static decimal Average (this System.Collections.Generic.IEnumerable&lt;decimal&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Average(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Decimal&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Decimal&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Decimal" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static double Average (this System.Collections.Generic.IEnumerable&lt;double&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Average(class System.Collections.Generic.IEnumerable`1&lt;float64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Double&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the sum of the elements is too large to represent as a <see cref="T:System.Double" />, this method returns positive or negative infinity.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Double" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static double Average (this System.Collections.Generic.IEnumerable&lt;int&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Average(class System.Collections.Generic.IEnumerable`1&lt;int32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int32&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int32" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static double Average (this System.Collections.Generic.IEnumerable&lt;long&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Average(class System.Collections.Generic.IEnumerable`1&lt;int64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int64&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int64" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Average (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;decimal&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Average(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Decimal&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Decimal" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Average (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;double&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Average(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Double&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the sum of the elements is too large to represent as a <see cref="T:System.Double" />, this method returns positive or negative infinity.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Double" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Average (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;int&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Average(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int32&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int32" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Average (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;long&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Average(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int64&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int64" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Average (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;float&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Average(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Single&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Single" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average">
      <MemberSignature Language="C#" Value="public static float Average (this System.Collections.Generic.IEnumerable&lt;float&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Average(class System.Collections.Generic.IEnumerable`1&lt;float32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Single&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Single" /> values to calculate the average of.</param>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static decimal Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,decimal&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Decimal&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Decimal&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Decimal" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate an average.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static double Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,double&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Double&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Double" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static double Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int32&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Int32" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static double Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,long&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int64&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Int64" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of source.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;decimal&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Decimal&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Decimal" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;double&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Double&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Double" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;int&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int32&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Int32" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;long&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int64&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Int64" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;float&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Single&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of nullable <see cref="T:System.Single" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values, or null if the source sequence is empty or contains only values that are null.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Average&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static float Average&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,float&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Average&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Single&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In vbprvb query expression syntax, an Aggregate Into Average() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Average" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the average of a sequence of <see cref="T:System.Single" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The average of the sequence of values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to calculate the average of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Cast&lt;TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Cast&lt;TResult&gt; (this System.Collections.IEnumerable source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Cast&lt;TResult&gt;(class System.Collections.IEnumerable source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.IEnumerable" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.Cast``1(System.Collections.IEnumerable)" /> method enables the standard query operators to be invoked on non-generic collections by supplying the necessary type information. For example, <see cref="T:System.Collections.ArrayList" /> does not implement <see cref="T:System.Collections.Generic.IEnumerable`1" />, but by calling <see cref="M:System.Linq.Enumerable.Cast``1(System.Collections.IEnumerable)" /> on the <see cref="T:System.Collections.ArrayList" /> object, the standard query operators can then be used to query the sequence.</para>
          <para>If an element cannot be cast to type <paramref name="TResult" />, this method will throw an exception. To obtain only those elements that can be cast to type <paramref name="TResult" />, use the <see cref="M:System.Linq.Enumerable.OfType``1(System.Collections.IEnumerable)" /> method instead of <see cref="M:System.Linq.Enumerable.Cast``1(System.Collections.IEnumerable)" />.</para>
          <para>In a query expression, an explicitly typed iteration variable translates to an invocation of <see cref="M:System.Linq.Enumerable.Cast``1(System.Collections.IEnumerable)" />. This example shows the syntax for an explicitly typed range variable.</para>
          <code>from int i in objects</code>
          <code>From i As Integer In objects</code>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Casts the elements of an <see cref="T:System.Collections.IEnumerable" /> to the specified type.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains each element of the source sequence cast to the specified type.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.IEnumerable" /> that contains the elements to be cast to type <paramref name="TResult" />.</param>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type to cast the elements of <paramref name="source" /> to.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Concat&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Concat&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Concat&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method differs from the <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method because the <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method returns all the original elements in the input sequences. The <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method returns only unique elements.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Concatenates two sequences.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the concatenated elements of the two input sequences.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />The first sequence to concatenate.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to concatenate to the first sequence.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Contains&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static bool Contains&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, TSource value);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool Contains&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, !!TSource value) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="value" Type="TSource" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the type of <paramref name="source" /> implements <see cref="T:System.Collections.Generic.ICollection`1" />, the <unmanagedCodeEntityReference>Contains</unmanagedCodeEntityReference> method in that implementation is invoked to obtain the result. Otherwise, this method determines whether <paramref name="source" /> contains the specified element.</para>
          <para>Enumeration is terminated as soon as a matching element is found.</para>
          <para>Elements are compared to the specified value by using the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether a sequence contains a specified element by using the default equality comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if the source sequence contains an element that has the specified value; otherwise, false.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence in which to locate a value.</param>
        <param name="value">
          <attribution license="cc4" from="Microsoft" modified="false" />The value to locate in the sequence.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Contains&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static bool Contains&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, TSource value, System.Collections.Generic.IEqualityComparer&lt;TSource&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool Contains&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, !!TSource value, class System.Collections.Generic.IEqualityComparer`1&lt;!!TSource&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="value" Type="TSource" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Enumeration is terminated as soon as a matching element is found.</para>
          <para>If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare elements to the specified value.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether a sequence contains a specified element by using a specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if the source sequence contains an element that has the specified value; otherwise, false.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence in which to locate a value.</param>
        <param name="value">
          <attribution license="cc4" from="Microsoft" modified="false" />The value to locate in the sequence.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An equality comparer to compare values.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Count&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static int Count&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Count&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the type of <paramref name="source" /> implements <see cref="T:System.Collections.Generic.ICollection`1" />, that implementation is used to obtain the count of elements. Otherwise, this method determines the count.</para>
          <para>Use the <see cref="M:System.Linq.Enumerable.LongCount``1(System.Collections.Generic.IEnumerable{``0})" /> method when you expect and want to allow the result to be greater than <see cref="F:System.Int32.MaxValue" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Count() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Count" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the number of elements in a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The number of elements in the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence that contains elements to be counted.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Count&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static int Count&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Count&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the type of <paramref name="source" /> implements <see cref="T:System.Collections.Generic.ICollection`1" />, that implementation is used to obtain the count of elements. Otherwise, this method determines the count.</para>
          <para>You should use the <see cref="M:System.Linq.Enumerable.LongCount``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method when you expect and want to allow the result to be greater than <see cref="F:System.Int32.MaxValue" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Count() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Count" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns a number that represents how many elements in the specified sequence satisfy a condition.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A number that represents how many elements in the sequence satisfy the condition in the predicate function.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence that contains elements to be tested and counted.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="DefaultIfEmpty&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; DefaultIfEmpty&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; DefaultIfEmpty&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The default value for reference and nullable types is null.</para>
          <para>This method can be used to produce a left outer join when it is combined with the <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" />) method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> object that contains the default value for the <paramref name="TSource" /> type if <paramref name="source" /> is empty; otherwise, <paramref name="source" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to return a default value for if it is empty.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="DefaultIfEmpty&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; DefaultIfEmpty&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, TSource defaultValue);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; DefaultIfEmpty&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, !!TSource defaultValue) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="defaultValue" Type="TSource" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>This method can be used to produce a left outer join when it is combined with the <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" />) method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains <paramref name="defaultValue" /> if <paramref name="source" /> is empty; otherwise, <paramref name="source" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to return the specified value for if it is empty.</param>
        <param name="defaultValue">
          <attribution license="cc4" from="Microsoft" modified="false" />The value to return if the sequence is empty.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Distinct&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Distinct&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Distinct&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.Distinct``1(System.Collections.Generic.IEnumerable{``0})" /> method returns an unordered sequence that contains no duplicate values. It uses the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, to compare values.</para>
          <para>In vbprvb query expression syntax, a Distinct clause translates to an invocation of <see cref="M:System.Linq.Enumerable.Distinct``1(System.Collections.Generic.IEnumerable{``0})" />.</para>
          <para>The default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values of the types that implement the <see cref="T:System.IEquatable`1" /> generic interface. To compare a custom data type, you need to implement this interface and provide your own <see cref="M:System.Object.GetHashCode" /> and <see cref="M:System.Object.Equals(System.Object)" /> methods for the type.</para>
          <para>For an example that uses <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to define a custom comparer, see <see cref="M:System.Linq.Enumerable.Distinct``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns distinct elements from a sequence by using the default equality comparer to compare values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains distinct elements from the source sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to remove duplicate elements from.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Distinct&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Distinct&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, System.Collections.Generic.IEqualityComparer&lt;TSource&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Distinct&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Collections.Generic.IEqualityComparer`1&lt;!!TSource&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.Distinct``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})" /> method returns an unordered sequence that contains no duplicate values. If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns distinct elements from a sequence by using a specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains distinct elements from the source sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to remove duplicate elements from.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare values.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ElementAt&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource ElementAt&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, int index);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource ElementAt&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, int32 index) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="index" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the type of <paramref name="source" /> implements <see cref="T:System.Collections.Generic.IList`1" />, that implementation is used to obtain the element at the specified index. Otherwise, this method obtains the specified element.</para>
          <para>This method throws an exception if <paramref name="index" /> is out of range. To instead return a default value when the specified index is out of range, use the <see cref="M:System.Linq.Enumerable.ElementAtOrDefault``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the element at a specified index in a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The element at the specified position in the source sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return an element from.</param>
        <param name="index">
          <attribution license="cc4" from="Microsoft" modified="false" />The zero-based index of the element to retrieve.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ElementAtOrDefault&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource ElementAtOrDefault&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, int index);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource ElementAtOrDefault&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, int32 index) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="index" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the type of <paramref name="source" /> implements <see cref="T:System.Collections.Generic.IList`1" />, that implementation is used to obtain the element at the specified index. Otherwise, this method obtains the specified element.</para>
          <para>The default value for reference and nullable types is null.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the element at a specified index in a sequence or a default value if the index is out of range.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>default(<paramref name="TSource" />) if the index is outside the bounds of the source sequence; otherwise, the element at the specified position in the source sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return an element from.</param>
        <param name="index">
          <attribution license="cc4" from="Microsoft" modified="false" />The zero-based index of the element to retrieve.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Empty&lt;TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Empty&lt;TResult&gt; ();" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Empty&lt;TResult&gt;() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Empty``1" /> method caches an empty sequence of type <paramref name="TResult" />. When the object it returns is enumerated, it yields no elements.</para>
          <para>In some cases, this method is useful for passing an empty sequence to a user-defined method that takes an <see cref="T:System.Collections.Generic.IEnumerable`1" />. It can also be used to generate a neutral element for methods such as <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" />. See the Example section for an example of this use of <see cref="M:System.Linq.Enumerable.Empty``1" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns an empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> that has the specified type argument.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose type argument is <paramref name="TResult" />.</para>
        </returns>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type to assign to the type parameter of the returned generic <see cref="T:System.Collections.Generic.IEnumerable`1" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Except&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Except&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Except&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The set difference of two sets is defined as the members of the first set that do not appear in the second set.</para>
          <block subset="none" type="note">
            <para>This method returns those elements in <paramref name="first" /> that do not appear in <paramref name="second" />. It does not also return those elements in <paramref name="second" /> that do not appear in <paramref name="first" />.</para>
          </block>
          <para>The default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values of the types that implement the <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> generic interface. To compare a custom data type, you need to implement this interface and provide your own <see cref="M:System.Object.GetHashCode" /> and <see cref="M:System.Object.Equals(System.Object)" /> methods for the type.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Produces the set difference of two sequences by using the default equality comparer to compare values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A sequence that contains the set difference of the elements of two sequences.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements that are not also in <paramref name="second" /> will be returned.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements that also occur in the first sequence will cause those elements to be removed from the returned sequence.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Except&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Except&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second, System.Collections.Generic.IEqualityComparer&lt;TSource&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Except&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second, class System.Collections.Generic.IEqualityComparer`1&lt;!!TSource&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Produces the set difference of two sequences by using the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A sequence that contains the set difference of the elements of two sequences.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements that are not also in <paramref name="second" /> will be returned.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements that also occur in the first sequence will cause those elements to be removed from the returned sequence.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare values.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="First&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource First&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource First&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.First``1(System.Collections.Generic.IEnumerable{``0})" /> method throws an exception if <paramref name="source" /> contains no elements. To instead return a default value when the source sequence is empty, use the <see cref="M:System.Linq.Enumerable.FirstOrDefault``1(System.Collections.Generic.IEnumerable{``0})" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the first element of a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The first element in the specified sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return the first element of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="First&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource First&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource First&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.First``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method throws an exception if no matching element is found in <paramref name="source" />. To instead return a default value when no matching element is found, use the <see cref="M:System.Linq.Enumerable.FirstOrDefault``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the first element in a sequence that satisfies a specified condition.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The first element in the sequence that passes the test in the specified predicate function.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return an element from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="FirstOrDefault&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource FirstOrDefault&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource FirstOrDefault&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default value for reference and nullable types is null.</para>
          <para>The <see cref="Overload:System.Linq.Enumerable.FirstOrDefault" /> method does not provide a way to specify a default value. If you want to specify a default value other than default(<paramref name="TSource" />), use the <see cref="M:System.Linq.Enumerable.DefaultIfEmpty``1(System.Collections.Generic.IEnumerable{``0},``0)" /> method as described in the Example section.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the first element of a sequence, or a default value if the sequence contains no elements.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>default(<paramref name="TSource" />) if <paramref name="source" /> is empty; otherwise, the first element in <paramref name="source" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return the first element of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="FirstOrDefault&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource FirstOrDefault&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource FirstOrDefault&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default value for reference and nullable types is null.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the first element of the sequence that satisfies a condition or a default value if no such element is found.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>default(<paramref name="TSource" />) if <paramref name="source" /> is empty or if no element passes the test specified by <paramref name="predicate" />; otherwise, the first element in <paramref name="source" /> that passes the test specified by <paramref name="predicate" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return an element from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TSource&gt;&gt; GroupBy&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;class System.Linq.IGrouping`2&lt;!!TKey, !!TSource&gt;&gt; GroupBy&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TSource&gt;&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <block subset="none" type="note">
            <para>For examples of GroupBy, see the following topics.</para>
            <list type="bullet">
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})" />
                </para>
              </item>
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2})" />
                </para>
              </item>
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``4(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3})" />
                </para>
              </item>
            </list>
          </block>
          <para>The <see cref="M:System.Linq.Enumerable.GroupBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})" /> method returns a collection of <see cref="T:System.Linq.IGrouping`2" /> objects, one for each distinct key that was encountered. An <see cref="T:System.Linq.IGrouping`2" /> is an <see cref="T:System.Collections.Generic.IEnumerable`1" /> that also has a key associated with its elements.</para>
          <para>The <see cref="T:System.Linq.IGrouping`2" /> objects are yielded in an order based on the order of the elements in <paramref name="source" /> that produced the first key of each <see cref="T:System.Linq.IGrouping`2" />. Elements in a grouping are yielded in the order they appear in <paramref name="source" />.</para>
          <para>The default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
          <para>In query expression syntax, a group by (csprcs) or Group By Into (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.GroupBy" />. For more information and usage examples, see <format type="text/html"><a href="c817242e-b12c-4baa-a57e-73ee138f34d1">group clause (C# Reference)</a></format> and <format type="text/html"><a href="b1b5dcea-6654-473b-a2db-01f7e4c265d7">Group By Clause (Visual Basic)</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a specified key selector function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <unmanagedCodeEntityReference>IEnumerable&lt;IGrouping&lt;TKey, TSource&gt;&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of IGrouping(Of TKey, TSource))</unmanagedCodeEntityReference> in vbprvb where each <see cref="T:System.Linq.IGrouping`2" /> object contains a sequence of objects and a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TSource&gt;&gt; GroupBy&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;class System.Linq.IGrouping`2&lt;!!TKey, !!TSource&gt;&gt; GroupBy&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TSource&gt;&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <block subset="none" type="note">
            <para>For examples of GroupBy, see the following topics.</para>
            <list type="bullet">
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})" />
                </para>
              </item>
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2})" />
                </para>
              </item>
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``4(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3})" />
                </para>
              </item>
            </list>
          </block>
          <para>The <see cref="M:System.Linq.Enumerable.GroupBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})" /> method returns a collection of <see cref="T:System.Linq.IGrouping`2" /> objects, one for each distinct key that was encountered. An <see cref="T:System.Linq.IGrouping`2" /> is an <see cref="T:System.Collections.Generic.IEnumerable`1" /> that also has a key associated with its elements.</para>
          <para>The <see cref="T:System.Linq.IGrouping`2" /> objects are yielded in an order based on the order of the elements in <paramref name="source" /> that produced the first key of each <see cref="T:System.Linq.IGrouping`2" />. Elements in a grouping are yielded in the order they appear in <paramref name="source" />.</para>
          <para>If <paramref name="comparer" /> is null, the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
          <para>If two keys are considered equal according to <paramref name="comparer" />, the first key is chosen as the key for that grouping.</para>
          <para>In query expression syntax, a group by (csprcs) or Group By Into (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.GroupBy" />. For more information and usage examples, see <format type="text/html"><a href="c817242e-b12c-4baa-a57e-73ee138f34d1">group clause (C# Reference)</a></format> and <format type="text/html"><a href="b1b5dcea-6654-473b-a2db-01f7e4c265d7">Group By Clause (Visual Basic)</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <unmanagedCodeEntityReference>IEnumerable&lt;IGrouping&lt;TKey, TSource&gt;&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of IGrouping(Of TKey, TSource))</unmanagedCodeEntityReference> in vbprvb where each <see cref="T:System.Linq.IGrouping`2" /> object contains a collection of objects and a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey,TElement&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TElement&gt;&gt; GroupBy&lt;TSource,TKey,TElement&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;class System.Linq.IGrouping`2&lt;!!TKey, !!TElement&gt;&gt; GroupBy&lt;TSource, TKey, TElement&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TElement&gt;&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})" /> method returns a collection of <see cref="T:System.Linq.IGrouping`2" /> objects, one for each distinct key that was encountered. An <see cref="T:System.Linq.IGrouping`2" /> is an <see cref="T:System.Collections.Generic.IEnumerable`1" /> that also has a key associated with its elements.</para>
          <para>The <see cref="T:System.Linq.IGrouping`2" /> objects are yielded in an order based on the order of the elements in <paramref name="source" /> that produced the first key of each <see cref="T:System.Linq.IGrouping`2" />. Elements in a grouping are yielded in the order that the elements that produced them appear in <paramref name="source" />.</para>
          <para>The default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <unmanagedCodeEntityReference>IEnumerable&lt;IGrouping&lt;TKey, TElement&gt;&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of IGrouping(Of TKey, TElement))</unmanagedCodeEntityReference> in vbprvb where each <see cref="T:System.Linq.IGrouping`2" /> object contains a collection of objects of type <paramref name="TElement" /> and a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to map each source element to an element in the <see cref="T:System.Linq.IGrouping`2" />.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements in the <see cref="T:System.Linq.IGrouping`2" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey,TElement&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TElement&gt;&gt; GroupBy&lt;TSource,TKey,TElement&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;class System.Linq.IGrouping`2&lt;!!TKey, !!TElement&gt;&gt; GroupBy&lt;TSource, TKey, TElement&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;System.Linq.IGrouping&lt;TKey,TElement&gt;&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <block subset="none" type="note">
            <para>For examples of GroupBy, see the following topics.</para>
            <list type="bullet">
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})" />
                </para>
              </item>
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2})" />
                </para>
              </item>
              <item>
                <para>
                  <see cref="M:System.Linq.Enumerable.GroupBy``4(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3})" />
                </para>
              </item>
            </list>
          </block>
          <para>The <see cref="M:System.Linq.Enumerable.GroupBy``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})" /> method returns a collection of <see cref="T:System.Linq.IGrouping`2" /> objects, one for each distinct key that was encountered. An <see cref="T:System.Linq.IGrouping`2" /> is an <see cref="T:System.Collections.Generic.IEnumerable`1" /> that also has a key associated with its elements.</para>
          <para>The <see cref="T:System.Linq.IGrouping`2" /> objects are yielded in an order based on the order of the elements in <paramref name="source" /> that produced the first key of each <see cref="T:System.Linq.IGrouping`2" />. Elements in a grouping are yielded in the order that the elements that produced them appear in <paramref name="source" />.</para>
          <para>If <paramref name="comparer" /> is null, the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
          <para>If two keys are considered equal according to <paramref name="comparer" />, the first key is chosen as the key for that grouping.</para>
          <para>In query expression syntax, a group by (csprcs) or Group By Into (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.GroupBy" />. For more information and usage examples, see <format type="text/html"><a href="c817242e-b12c-4baa-a57e-73ee138f34d1">group clause (C# Reference)</a></format> and <format type="text/html"><a href="b1b5dcea-6654-473b-a2db-01f7e4c265d7">Group By Clause (Visual Basic)</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <unmanagedCodeEntityReference>IEnumerable&lt;IGrouping&lt;TKey, TElement&gt;&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of IGrouping(Of TKey, TElement))</unmanagedCodeEntityReference> in vbprvb where each <see cref="T:System.Linq.IGrouping`2" /> object contains a collection of objects of type <paramref name="TElement" /> and a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to map each source element to an element in an <see cref="T:System.Linq.IGrouping`2" />.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements in the <see cref="T:System.Linq.IGrouping`2" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; GroupBy&lt;TSource,TKey,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TSource&gt;,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; GroupBy&lt;TSource, TKey, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`3&lt;!!TKey, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt;, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TSource&gt;,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In query expression syntax, a group by (csprcs) or Group By Into (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.GroupBy" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A collection of elements of type <paramref name="TResult" /> where each element represents a projection over a group and its key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result value from each group.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result value returned by <paramref name="resultSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; GroupBy&lt;TSource,TKey,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TSource&gt;,TResult&gt; resultSelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; GroupBy&lt;TSource, TKey, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`3&lt;!!TKey, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt;, !!TResult&gt; resultSelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TSource&gt;,TResult&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The keys are compared by using a specified comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A collection of elements of type <paramref name="TResult" /> where each element represents a projection over a group and its key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result value from each group.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys with.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result value returned by <paramref name="resultSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey,TElement,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; GroupBy&lt;TSource,TKey,TElement,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector, Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TElement&gt;,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; GroupBy&lt;TSource, TKey, TElement, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector, class System.Func`3&lt;!!TKey, class System.Collections.Generic.IEnumerable`1&lt;!!TElement&gt;, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TElement&gt;,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>In query expression syntax, a group by (csprcs) or Group By Into (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.GroupBy" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A collection of elements of type <paramref name="TResult" /> where each element represents a projection over a group and its key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to map each source element to an element in an <see cref="T:System.Linq.IGrouping`2" />.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result value from each group.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements in each <see cref="T:System.Linq.IGrouping`2" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result value returned by <paramref name="resultSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupBy&lt;TSource,TKey,TElement,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; GroupBy&lt;TSource,TKey,TElement,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector, Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TElement&gt;,TResult&gt; resultSelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; GroupBy&lt;TSource, TKey, TElement, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector, class System.Func`3&lt;!!TKey, class System.Collections.Generic.IEnumerable`1&lt;!!TElement&gt;, !!TResult&gt; resultSelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TKey,System.Collections.Generic.IEnumerable&lt;TElement&gt;,TResult&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A collection of elements of type <paramref name="TResult" /> where each element represents a projection over a group and its key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements to group.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the key for each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to map each source element to an element in an <see cref="T:System.Linq.IGrouping`2" />.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result value from each group.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys with.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements in each <see cref="T:System.Linq.IGrouping`2" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result value returned by <paramref name="resultSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupJoin&lt;TOuter,TInner,TKey,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; GroupJoin&lt;TOuter,TInner,TKey,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TOuter&gt; outer, System.Collections.Generic.IEnumerable&lt;TInner&gt; inner, Func&lt;TOuter,TKey&gt; outerKeySelector, Func&lt;TInner,TKey&gt; innerKeySelector, Func&lt;TOuter,System.Collections.Generic.IEnumerable&lt;TInner&gt;,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; GroupJoin&lt;TOuter, TInner, TKey, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TOuter&gt; outer, class System.Collections.Generic.IEnumerable`1&lt;!!TInner&gt; inner, class System.Func`2&lt;!!TOuter, !!TKey&gt; outerKeySelector, class System.Func`2&lt;!!TInner, !!TKey&gt; innerKeySelector, class System.Func`3&lt;!!TOuter, class System.Collections.Generic.IEnumerable`1&lt;!!TInner&gt;, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TOuter" />
        <TypeParameter Name="TInner" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="outer" Type="System.Collections.Generic.IEnumerable&lt;TOuter&gt;" RefType="this" />
        <Parameter Name="inner" Type="System.Collections.Generic.IEnumerable&lt;TInner&gt;" />
        <Parameter Name="outerKeySelector" Type="System.Func&lt;TOuter,TKey&gt;" />
        <Parameter Name="innerKeySelector" Type="System.Func&lt;TInner,TKey&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TOuter,System.Collections.Generic.IEnumerable&lt;TInner&gt;,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to hash and compare keys.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" /> produces hierarchical results, which means that elements from <paramref name="outer" /> are paired with collections of matching elements from <paramref name="inner" />. <unmanagedCodeEntityReference>GroupJoin</unmanagedCodeEntityReference> enables you to base your results on a whole set of matches for each element of <paramref name="outer" />.</para>
          <block subset="none" type="note">
            <para>If there are no correlated elements in <paramref name="inner" /> for a given element of <paramref name="outer" />, the sequence of matches for that element will be empty but will still appear in the results.</para>
          </block>
          <para>The <paramref name="resultSelector" /> function is called only one time for each <paramref name="outer" /> element together with a collection of all the <paramref name="inner" /> elements that match the <paramref name="outer" /> element. This differs from the <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> method, in which the result selector function is invoked on pairs that contain one element from <paramref name="outer" /> and one element from <paramref name="inner" />.</para>
          <para>
            <unmanagedCodeEntityReference>GroupJoin</unmanagedCodeEntityReference> preserves the order of the elements of <paramref name="outer" />, and for each element of <paramref name="outer" />, the order of the matching elements from <paramref name="inner" />.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" /> has no direct equivalent in traditional relational database terms. However, this method does implement a superset of inner joins and left outer joins. Both of these operations can be written in terms of a grouped join. See <format type="text/html"><a href="442d176d-028c-4beb-8d22-407d4ef89107">Join Operations</a></format>.</para>
          <para>In query expression syntax, a join … into (csprcs) or Group Join (vbprvb) clause translates to an invocation of <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains elements of type <paramref name="TResult" /> that are obtained by performing a grouped join on two sequences.</para>
        </returns>
        <param name="outer">
          <attribution license="cc4" from="Microsoft" modified="false" />The first sequence to join.</param>
        <param name="inner">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to join to the first sequence.</param>
        <param name="outerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the first sequence.</param>
        <param name="innerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the second sequence.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence.</param>
        <typeparam name="TOuter">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the first sequence.</typeparam>
        <typeparam name="TInner">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the second sequence.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the keys returned by the key selector functions.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result elements.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="GroupJoin&lt;TOuter,TInner,TKey,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; GroupJoin&lt;TOuter,TInner,TKey,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TOuter&gt; outer, System.Collections.Generic.IEnumerable&lt;TInner&gt; inner, Func&lt;TOuter,TKey&gt; outerKeySelector, Func&lt;TInner,TKey&gt; innerKeySelector, Func&lt;TOuter,System.Collections.Generic.IEnumerable&lt;TInner&gt;,TResult&gt; resultSelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; GroupJoin&lt;TOuter, TInner, TKey, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TOuter&gt; outer, class System.Collections.Generic.IEnumerable`1&lt;!!TInner&gt; inner, class System.Func`2&lt;!!TOuter, !!TKey&gt; outerKeySelector, class System.Func`2&lt;!!TInner, !!TKey&gt; innerKeySelector, class System.Func`3&lt;!!TOuter, class System.Collections.Generic.IEnumerable`1&lt;!!TInner&gt;, !!TResult&gt; resultSelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TOuter" />
        <TypeParameter Name="TInner" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="outer" Type="System.Collections.Generic.IEnumerable&lt;TOuter&gt;" RefType="this" />
        <Parameter Name="inner" Type="System.Collections.Generic.IEnumerable&lt;TInner&gt;" />
        <Parameter Name="outerKeySelector" Type="System.Func&lt;TOuter,TKey&gt;" />
        <Parameter Name="innerKeySelector" Type="System.Func&lt;TInner,TKey&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TOuter,System.Collections.Generic.IEnumerable&lt;TInner&gt;,TResult&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to hash and compare keys.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" /> produces hierarchical results, which means that elements from <paramref name="outer" /> are paired with collections of matching elements from <paramref name="inner" />. <unmanagedCodeEntityReference>GroupJoin</unmanagedCodeEntityReference> enables you to base your results on a whole set of matches for each element of <paramref name="outer" />.</para>
          <block subset="none" type="note">
            <para>If there are no correlated elements in <paramref name="inner" /> for a given element of <paramref name="outer" />, the sequence of matches for that element will be empty but will still appear in the results.</para>
          </block>
          <para>The <paramref name="resultSelector" /> function is called only one time for each <paramref name="outer" /> element together with a collection of all the <paramref name="inner" /> elements that match the <paramref name="outer" /> element. This differs from the <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> method in which the result selector function is invoked on pairs that contain one element from <paramref name="outer" /> and one element from <paramref name="inner" />.</para>
          <para>
            <unmanagedCodeEntityReference>GroupJoin</unmanagedCodeEntityReference> preserves the order of the elements of <paramref name="outer" />, and for each element of <paramref name="outer" />, the order of the matching elements from <paramref name="inner" />.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" /> has no direct equivalent in traditional relational database terms. However, this method does implement a superset of inner joins and left outer joins. Both of these operations can be written in terms of a grouped join. See <format type="text/html"><a href="442d176d-028c-4beb-8d22-407d4ef89107">Performing Join Operations</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Correlates the elements of two sequences based on key equality and groups the results. A specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> is used to compare keys.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains elements of type <paramref name="TResult" /> that are obtained by performing a grouped join on two sequences.</para>
        </returns>
        <param name="outer">
          <attribution license="cc4" from="Microsoft" modified="false" />The first sequence to join.</param>
        <param name="inner">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to join to the first sequence.</param>
        <param name="outerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the first sequence.</param>
        <param name="innerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the second sequence.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to hash and compare keys.</param>
        <typeparam name="TOuter">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the first sequence.</typeparam>
        <typeparam name="TInner">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the second sequence.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the keys returned by the key selector functions.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result elements.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Intersect&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Intersect&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Intersect&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The intersection of two sets A and B is defined as the set that contains all the elements of A that also appear in B, but no other elements.</para>
          <para>When the object returned by this method is enumerated, <see cref="M:System.Linq.Enumerable.Intersect``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> enumerates <paramref name="first" />, collecting all distinct elements of that sequence. It then enumerates <paramref name="second" />, marking those elements that occur in both sequences. Finally, the marked elements are yielded in the order in which they were collected.</para>
          <para>The default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values of the types that implement the <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> generic interface. To compare a custom data type, you need to implement this interface and provide your own <see cref="M:System.Object.GetHashCode" /> and <see cref="M:System.Object.Equals(System.Object)" /> methods for the type.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Produces the set intersection of two sequences by using the default equality comparer to compare values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A sequence that contains the elements that form the set intersection of two sequences.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements that also appear in <paramref name="second" /> will be returned.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements that also appear in the first sequence will be returned.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Intersect&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Intersect&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second, System.Collections.Generic.IEqualityComparer&lt;TSource&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Intersect&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second, class System.Collections.Generic.IEqualityComparer`1&lt;!!TSource&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The intersection of two sets A and B is defined as the set that contains all the elements of A that also appear in B, but no other elements.</para>
          <para>When the object returned by this method is enumerated, <see cref="M:System.Linq.Enumerable.Intersect``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> enumerates <paramref name="first" />, collecting all distinct elements of that sequence. It then enumerates <paramref name="second" />, marking those elements that occur in both sequences. Finally, the marked elements are yielded in the order in which they were collected.</para>
          <para>If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Produces the set intersection of two sequences by using the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A sequence that contains the elements that form the set intersection of two sequences.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements that also appear in <paramref name="second" /> will be returned.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements that also appear in the first sequence will be returned.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare values.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Join&lt;TOuter,TInner,TKey,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Join&lt;TOuter,TInner,TKey,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TOuter&gt; outer, System.Collections.Generic.IEnumerable&lt;TInner&gt; inner, Func&lt;TOuter,TKey&gt; outerKeySelector, Func&lt;TInner,TKey&gt; innerKeySelector, Func&lt;TOuter,TInner,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Join&lt;TOuter, TInner, TKey, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TOuter&gt; outer, class System.Collections.Generic.IEnumerable`1&lt;!!TInner&gt; inner, class System.Func`2&lt;!!TOuter, !!TKey&gt; outerKeySelector, class System.Func`2&lt;!!TInner, !!TKey&gt; innerKeySelector, class System.Func`3&lt;!!TOuter, !!TInner, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TOuter" />
        <TypeParameter Name="TInner" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="outer" Type="System.Collections.Generic.IEnumerable&lt;TOuter&gt;" RefType="this" />
        <Parameter Name="inner" Type="System.Collections.Generic.IEnumerable&lt;TInner&gt;" />
        <Parameter Name="outerKeySelector" Type="System.Func&lt;TOuter,TKey&gt;" />
        <Parameter Name="innerKeySelector" Type="System.Func&lt;TInner,TKey&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TOuter,TInner,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to hash and compare keys.</para>
          <para>A join refers to the operation of correlating the elements of two sources of information based on a common key. <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> brings the two information sources and the keys by which they are matched together in one method call. This differs from the use of <unmanagedCodeEntityReference>SelectMany</unmanagedCodeEntityReference>, which requires more than one method call to perform the same operation.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> preserves the order of the elements of <paramref name="outer" />, and for each of these elements, the order of the matching elements of <paramref name="inner" />.</para>
          <para>In query expression syntax, a join (csprcs) or Join (vbprvb) clause translates to an invocation of <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" />.</para>
          <para>In relational database terms, the <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> method implements an inner equijoin. 'Inner' means that only elements that have a match in the other sequence are included in the results. An 'equijoin' is a join in which the keys are compared for equality. A left outer join operation has no dedicated standard query operator, but can be performed by using the <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" /> method. See <format type="text/html"><a href="442d176d-028c-4beb-8d22-407d4ef89107">Joining</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that has elements of type <paramref name="TResult" /> that are obtained by performing an inner join on two sequences.</para>
        </returns>
        <param name="outer">
          <attribution license="cc4" from="Microsoft" modified="false" />The first sequence to join.</param>
        <param name="inner">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to join to the first sequence.</param>
        <param name="outerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the first sequence.</param>
        <param name="innerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the second sequence.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result element from two matching elements.</param>
        <typeparam name="TOuter">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the first sequence.</typeparam>
        <typeparam name="TInner">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the second sequence.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the keys returned by the key selector functions.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result elements.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Join&lt;TOuter,TInner,TKey,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Join&lt;TOuter,TInner,TKey,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TOuter&gt; outer, System.Collections.Generic.IEnumerable&lt;TInner&gt; inner, Func&lt;TOuter,TKey&gt; outerKeySelector, Func&lt;TInner,TKey&gt; innerKeySelector, Func&lt;TOuter,TInner,TResult&gt; resultSelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Join&lt;TOuter, TInner, TKey, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TOuter&gt; outer, class System.Collections.Generic.IEnumerable`1&lt;!!TInner&gt; inner, class System.Func`2&lt;!!TOuter, !!TKey&gt; outerKeySelector, class System.Func`2&lt;!!TInner, !!TKey&gt; innerKeySelector, class System.Func`3&lt;!!TOuter, !!TInner, !!TResult&gt; resultSelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TOuter" />
        <TypeParameter Name="TInner" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="outer" Type="System.Collections.Generic.IEnumerable&lt;TOuter&gt;" RefType="this" />
        <Parameter Name="inner" Type="System.Collections.Generic.IEnumerable&lt;TInner&gt;" />
        <Parameter Name="outerKeySelector" Type="System.Func&lt;TOuter,TKey&gt;" />
        <Parameter Name="innerKeySelector" Type="System.Func&lt;TInner,TKey&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TOuter,TInner,TResult&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to hash and compare keys.</para>
          <para>A join refers to the operation of correlating the elements of two sources of information based on a common key. <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> brings the two information sources and the keys by which they are matched together in one method call. This differs from the use of <unmanagedCodeEntityReference>SelectMany</unmanagedCodeEntityReference>, which requires more than one method call to perform the same operation.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> preserves the order of the elements of <paramref name="outer" />, and for each of these elements, the order of the matching elements of <paramref name="inner" />.</para>
          <para>In relational database terms, the <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})" /> method implements an inner equijoin. 'Inner' means that only elements that have a match in the other sequence are included in the results. An 'equijoin' is a join in which the keys are compared for equality. A left outer join operation has no dedicated standard query operator, but can be performed by using the <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})" /> method. See <format type="text/html"><a href="442d176d-028c-4beb-8d22-407d4ef89107">Joining</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Correlates the elements of two sequences based on matching keys. A specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> is used to compare keys.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that has elements of type <paramref name="TResult" /> that are obtained by performing an inner join on two sequences.</para>
        </returns>
        <param name="outer">
          <attribution license="cc4" from="Microsoft" modified="false" />The first sequence to join.</param>
        <param name="inner">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to join to the first sequence.</param>
        <param name="outerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the first sequence.</param>
        <param name="innerKeySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract the join key from each element of the second sequence.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to create a result element from two matching elements.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to hash and compare keys.</param>
        <typeparam name="TOuter">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the first sequence.</typeparam>
        <typeparam name="TInner">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the second sequence.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the keys returned by the key selector functions.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the result elements.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Last&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource Last&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource Last&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Last``1(System.Collections.Generic.IEnumerable{``0})" /> method throws an exception if <paramref name="source" /> contains no elements. To instead return a default value when the source sequence is empty, use the <see cref="M:System.Linq.Enumerable.LastOrDefault``1(System.Collections.Generic.IEnumerable{``0})" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the last element of a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value at the last position in the source sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return the last element of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Last&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource Last&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource Last&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Last``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method throws an exception if no matching element is found in <paramref name="source" />. To instead return a default value when no matching element is found, use the <see cref="M:System.Linq.Enumerable.LastOrDefault``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the last element of a sequence that satisfies a specified condition.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The last element in the sequence that passes the test in the specified predicate function.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return an element from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="LastOrDefault&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource LastOrDefault&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource LastOrDefault&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default value for reference and nullable types is null.</para>
          <para>The <see cref="Overload:System.Linq.Enumerable.LastOrDefault" /> method does not provide a way to specify a default value. If you want to specify a default value other than default(<paramref name="TSource" />), use the <see cref="M:System.Linq.Enumerable.DefaultIfEmpty``1(System.Collections.Generic.IEnumerable{``0},``0)" /> method as described in the Example section.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the last element of a sequence, or a default value if the sequence contains no elements.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>default(<paramref name="TSource" />) if the source sequence is empty; otherwise, the last element in the <see cref="T:System.Collections.Generic.IEnumerable`1" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return the last element of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="LastOrDefault&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource LastOrDefault&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource LastOrDefault&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default value for reference and nullable types is null.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the last element of a sequence that satisfies a condition or a default value if no such element is found.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>default(<paramref name="TSource" />) if the sequence is empty or if no elements pass the test in the predicate function; otherwise, the last element that passes the test in the predicate function.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return an element from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="LongCount&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static long LongCount&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 LongCount&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use this method rather than <see cref="M:System.Linq.Enumerable.Count``1(System.Collections.Generic.IEnumerable{``0})" /> when you expect the result to be greater than <see cref="F:System.Int32.MaxValue" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into LongCount() clause translates to an invocation of <see cref="M:System.Linq.Enumerable.LongCount``1(System.Collections.Generic.IEnumerable{``0})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns an <see cref="T:System.Int64" /> that represents the total number of elements in a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The number of elements in the source sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements to be counted.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="LongCount&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static long LongCount&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 LongCount&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use this method rather than <see cref="M:System.Linq.Enumerable.Count``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> when you expect the result to be greater than <see cref="F:System.Int32.MaxValue" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into LongCount() clause translates to an invocation of <see cref="M:System.Linq.Enumerable.LongCount``1(System.Collections.Generic.IEnumerable{``0})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns an <see cref="T:System.Int64" /> that represents how many elements in a sequence satisfy a condition.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A number that represents how many elements in the sequence satisfy the condition in the predicate function.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements to be counted.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static decimal Max (this System.Collections.Generic.IEnumerable&lt;decimal&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Max(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Decimal&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Decimal&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Decimal})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Decimal" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static double Max (this System.Collections.Generic.IEnumerable&lt;double&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Max(class System.Collections.Generic.IEnumerable`1&lt;float64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Double&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Double})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Double" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static int Max (this System.Collections.Generic.IEnumerable&lt;int&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Max(class System.Collections.Generic.IEnumerable`1&lt;int32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int32&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Int32})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int32" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static long Max (this System.Collections.Generic.IEnumerable&lt;long&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 Max(class System.Collections.Generic.IEnumerable`1&lt;int64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int64&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Int64})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int64" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Max (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;decimal&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Max(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Decimal&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Nullable{System.Decimal}})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of nullable <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Decimal&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Decimal)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence. </para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Decimal" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Max (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;double&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Max(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Double&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Nullable{System.Double}})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of nullable <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Double&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Double)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Double" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static Nullable&lt;int&gt; Max (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;int&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int32&gt; Max(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int32&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int32&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Nullable{System.Int32}})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of nullable <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int32)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence. </para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int32" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static Nullable&lt;long&gt; Max (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;long&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int64&gt; Max(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int64&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int64&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Nullable{System.Int64}})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of nullable <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Int64&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int64)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence. </para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int64" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Max (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;float&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Max(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Single&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Nullable{System.Single}})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of nullable <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Single&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Single)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Single" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max">
      <MemberSignature Language="C#" Value="public static float Max (this System.Collections.Generic.IEnumerable&lt;float&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Max(class System.Collections.Generic.IEnumerable`1&lt;float32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Single&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable{System.Single})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a sequence of <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Single" /> values to determine the maximum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If type <paramref name="TSource" /> implements <see cref="T:System.IComparable`1" />, the <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0})" /> method uses that implementation to compare values. Otherwise, if type <paramref name="TSource" /> implements <see cref="T:System.IComparable" />, that implementation is used to compare values.</para>
          <para>If <paramref name="TSource" /> is a reference type and the source sequence is empty or contains only values that are null, this method returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the maximum value in a generic sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static decimal Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,decimal&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Decimal&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Decimal&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Decimal})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Decimal" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum <see cref="T:System.Decimal" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static double Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,double&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Double&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Double})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Double" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum <see cref="T:System.Double" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static int Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int32&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Int32" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum <see cref="T:System.Int32" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static long Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,long&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int64&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int64})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Int64" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum <see cref="T:System.Int64" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;decimal&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Decimal&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Decimal}})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Decimal&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Decimal)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum nullable <see cref="T:System.Decimal" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Decimal&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Decimal)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;double&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Double&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Double}})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Double&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Double)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum nullable <see cref="T:System.Double" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Double&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Double)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;int&gt; Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;int&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int32&gt; Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int32&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int32&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Int32}})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int32)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum nullable <see cref="T:System.Int32" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int32)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;long&gt; Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;long&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int64&gt; Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int64&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int64&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Int64}})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Int64&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int64)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum nullable <see cref="T:System.Int64" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Int64&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int64)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;float&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Single&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Single}})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Single&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Single)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum nullable <see cref="T:System.Single" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Single&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Single)</unmanagedCodeEntityReference> in vbprvb that corresponds to the maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static float Max&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,float&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Max&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Single&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Single})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Single" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the maximum <see cref="T:System.Single" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Max&lt;TSource,TResult&gt;">
      <MemberSignature Language="C#" Value="public static TResult Max&lt;TSource,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TResult&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TResult Max&lt;TSource, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TResult&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TResult</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If type <paramref name="TResult" /> implements <see cref="T:System.IComparable`1" />, this method uses that implementation to compare values. Otherwise, if type <paramref name="TResult" /> implements <see cref="T:System.IComparable" />, that implementation is used to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Max() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Max" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a generic sequence and returns the maximum resulting value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The maximum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the maximum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="selector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static decimal Min (this System.Collections.Generic.IEnumerable&lt;decimal&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Min(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Decimal&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Decimal&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Decimal})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Decimal" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static double Min (this System.Collections.Generic.IEnumerable&lt;double&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Min(class System.Collections.Generic.IEnumerable`1&lt;float64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Double&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Double})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Double" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static int Min (this System.Collections.Generic.IEnumerable&lt;int&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Min(class System.Collections.Generic.IEnumerable`1&lt;int32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int32&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Int32})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int32" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static long Min (this System.Collections.Generic.IEnumerable&lt;long&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 Min(class System.Collections.Generic.IEnumerable`1&lt;int64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int64&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Int64})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int64" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Min (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;decimal&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Min(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Decimal&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Nullable{System.Decimal}})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of nullable <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Decimal&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Decimal)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Decimal" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Min (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;double&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Min(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Double&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Nullable{System.Double}})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of nullable <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Double&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Double)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Double" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static Nullable&lt;int&gt; Min (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;int&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int32&gt; Min(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int32&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int32&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Nullable{System.Int32}})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of nullable <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int32)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int32" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static Nullable&lt;long&gt; Min (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;long&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int64&gt; Min(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int64&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int64&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Nullable{System.Int64}})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of nullable <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Int64&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int64)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int64" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Min (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;float&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Min(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Single&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Nullable{System.Single}})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>If the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of nullable <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A value of type <unmanagedCodeEntityReference>Nullable&lt;Single&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Single)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Single" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min">
      <MemberSignature Language="C#" Value="public static float Min (this System.Collections.Generic.IEnumerable&lt;float&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Min(class System.Collections.Generic.IEnumerable`1&lt;float32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Single&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable{System.Single})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a sequence of <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Single" /> values to determine the minimum value of.</param>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If type <paramref name="TSource" /> implements <see cref="T:System.IComparable`1" />, this method uses that implementation to compare values. Otherwise, if type <paramref name="TSource" /> implements <see cref="T:System.IComparable" />, that implementation is used to compare values. </para>
          <para>If <paramref name="TSource" /> is a reference type and the source sequence is empty or contains only values that are null, this function returns null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the minimum value in a generic sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static decimal Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,decimal&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Decimal&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Decimal&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Decimal})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Decimal" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum <see cref="T:System.Decimal" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static double Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,double&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Double&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Double})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Double" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum <see cref="T:System.Double" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static int Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int32&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Int32" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum <see cref="T:System.Int32" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static long Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,long&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int64&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int64})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Int64" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum <see cref="T:System.Int64" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;decimal&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Decimal&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Decimal}})" /> method uses the <see cref="T:System.Decimal" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Decimal&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Decimal)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum nullable <see cref="T:System.Decimal" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Decimal&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Decimal)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;double&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Double&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Double}})" /> method uses the <see cref="T:System.Double" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Double&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Double)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum nullable <see cref="T:System.Double" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Double&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Double)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;int&gt; Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;int&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int32&gt; Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int32&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int32&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Int32}})" /> method uses the <see cref="T:System.Int32" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of source into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int32)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum nullable <see cref="T:System.Int32" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int32)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;long&gt; Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;long&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int64&gt; Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int64&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int64&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Int64}})" /> method uses the <see cref="T:System.Int64" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Int64&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int64)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum nullable <see cref="T:System.Int64" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Int64&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int64)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;float&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Single&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Nullable{System.Single}})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Single&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Single)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum nullable <see cref="T:System.Single" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The value of type <unmanagedCodeEntityReference>Nullable&lt;Single&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Single)</unmanagedCodeEntityReference> in vbprvb that corresponds to the minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static float Min&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,float&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Min&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Single&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Single})" /> method uses the <see cref="T:System.Single" /> implementation of <see cref="T:System.IComparable`1" /> to compare values. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Single" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a sequence and returns the minimum <see cref="T:System.Single" /> value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Min&lt;TSource,TResult&gt;">
      <MemberSignature Language="C#" Value="public static TResult Min&lt;TSource,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TResult&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TResult Min&lt;TSource, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TResult&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TResult</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If type <paramref name="TResult" /> implements <see cref="T:System.IComparable`1" />, this method uses that implementation to compare values. Otherwise, if type <paramref name="TResult" /> implements <see cref="T:System.IComparable" />, that implementation is used to compare values.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Min() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Min" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invokes a transform function on each element of a generic sequence and returns the minimum resulting value.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The minimum value in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to determine the minimum value of.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="selector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="OfType&lt;TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; OfType&lt;TResult&gt; (this System.Collections.IEnumerable source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; OfType&lt;TResult&gt;(class System.Collections.IEnumerable source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.IEnumerable" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.OfType``1(System.Collections.IEnumerable)" /> method returns only those elements in <paramref name="source" /> that can be cast to type <paramref name="TResult" />. To instead receive an exception if an element cannot be cast to type <paramref name="TResult" />, use <see cref="M:System.Linq.Enumerable.Cast``1(System.Collections.IEnumerable)" />.</para>
          <para>This method is one of the few standard query operator methods that can be applied to a collection that has a non-parameterized type, such as an <see cref="T:System.Collections.ArrayList" />. This is because <see cref="M:System.Linq.Enumerable.OfType``1(System.Collections.IEnumerable)" /> extends the type <see cref="T:System.Collections.IEnumerable" />. <see cref="M:System.Linq.Enumerable.OfType``1(System.Collections.IEnumerable)" /> cannot only be applied to collections that are based on the parameterized <see cref="T:System.Collections.Generic.IEnumerable`1" /> type, but collections that are based on the non-parameterized <see cref="T:System.Collections.IEnumerable" /> type also.</para>
          <para>By applying <see cref="M:System.Linq.Enumerable.OfType``1(System.Collections.IEnumerable)" /> to a collection that implements <see cref="T:System.Collections.IEnumerable" />, you gain the ability to query the collection by using the standard query operators. For example, specifying a type argument of <see cref="T:System.Object" /> to <see cref="M:System.Linq.Enumerable.OfType``1(System.Collections.IEnumerable)" /> would return an object of type <unmanagedCodeEntityReference>IEnumerable&lt;Object&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of Object)</unmanagedCodeEntityReference> in vbprvb, to which the standard query operators can be applied.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Filters the elements of an <see cref="T:System.Collections.IEnumerable" /> based on a specified type.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains elements from the input sequence of type <paramref name="TResult" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.IEnumerable" /> whose elements to filter.</param>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type to filter the elements of the sequence on.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="OrderBy&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; OrderBy&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; OrderBy&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>Two methods are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is the return type of this method. These two methods, namely <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference>, enable you to specify additional sort criteria to sort a sequence. <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> also return an <see cref="T:System.Linq.IOrderedEnumerable`1" />, which means any number of consecutive calls to <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> or <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> can be made.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>This method compares keys by using the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" />.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
          <para>In query expression syntax, an orderby (csprcs) or Order By (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.OrderBy" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sorts the elements of a sequence in ascending order according to a key.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to order.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from an element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="OrderBy&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; OrderBy&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, System.Collections.Generic.IComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; OrderBy&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Collections.Generic.IComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>Two methods are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is the return type of this method. These two methods, namely <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference>, enable you to specify additional sort criteria to sort a sequence. <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> also return an <see cref="T:System.Linq.IOrderedEnumerable`1" />, which means any number of consecutive calls to <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> or <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> can be made.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>If <paramref name="comparer" /> is null, the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" /> is used to compare keys.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sorts the elements of a sequence in ascending order by using a specified comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to order.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from an element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="OrderByDescending&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; OrderByDescending&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; OrderByDescending&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>For an example of this method, see <see cref="M:System.Linq.Enumerable.OrderByDescending``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})" />.</para>
          <para>Two methods are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is the return type of this method. These two methods, namely <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference>, enable you to specify additional sort criteria to sort a sequence. <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> also return an <see cref="T:System.Linq.IOrderedEnumerable`1" />, which means any number of consecutive calls to <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> or <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> can be made.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>This method compares keys by using the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" />.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
          <para>In query expression syntax, an orderby descending (csprcs) or Order By Descending (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sorts the elements of a sequence in descending order according to a key.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted in descending order according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to order.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from an element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="OrderByDescending&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; OrderByDescending&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, System.Collections.Generic.IComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; OrderByDescending&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Collections.Generic.IComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>Two methods are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is the return type of this method. These two methods, namely <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference>, enable you to specify additional sort criteria to sort a sequence. <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> and <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> also return an <see cref="T:System.Linq.IOrderedEnumerable`1" />, which means any number of consecutive calls to <unmanagedCodeEntityReference>ThenBy</unmanagedCodeEntityReference> or <unmanagedCodeEntityReference>ThenByDescending</unmanagedCodeEntityReference> can be made.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>If <paramref name="comparer" /> is null, the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" /> is used to compare keys.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sorts the elements of a sequence in descending order by using a specified comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted in descending order according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to order.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from an element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Range">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;int&gt; Range (int start, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;int32&gt; Range(int32 start, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;System.Int32&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.Int32" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Generates a sequence of integral numbers within a specified range.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <unmanagedCodeEntityReference>IEnumerable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of Int32)</unmanagedCodeEntityReference> in vbprvb that contains a range of sequential integral numbers.</para>
        </returns>
        <param name="start">
          <attribution license="cc4" from="Microsoft" modified="false" />The value of the first integer in the sequence.</param>
        <param name="count">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of sequential integers to generate.</param>
      </Docs>
    </Member>
    <Member MemberName="Repeat&lt;TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Repeat&lt;TResult&gt; (TResult element, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Repeat&lt;TResult&gt;(!!TResult element, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="element" Type="TResult" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <typeparam name="TResult">To be added.</typeparam>
        <param name="element">To be added.</param>
        <param name="count">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Reverse&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Reverse&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Reverse&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>Unlike <see cref="Overload:System.Linq.Enumerable.OrderBy" />, this sorting method does not consider the actual values themselves in determining the order. Rather, it just returns the elements in the reverse order from which they are produced by the underlying source.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Inverts the order of the elements in a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A sequence whose elements correspond to those of the input sequence in reverse order.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to reverse.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Select&lt;TSource,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Select&lt;TSource,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int,TResult&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Select&lt;TSource, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`3&lt;!!TSource, int32, !!TResult&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int32,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The first argument to <paramref name="selector" /> represents the element to process. The second argument to <paramref name="selector" /> represents the zero-based index of that element in the source sequence. This can be useful if the elements are in a known order and you want to do something with an element at a particular index, for example. It can also be useful if you want to retrieve the index of one or more elements.</para>
          <para>This projection method requires the transform function, <paramref name="selector" />, to produce one value for each value in the source sequence, <paramref name="source" />. If <paramref name="selector" /> returns a value that is itself a collection, it is up to the consumer to traverse the subsequences manually. In such a situation, it might be better for your query to return a single coalesced sequence of values. To achieve this, use the <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}})" /> method instead of <see cref="M:System.Linq.Enumerable.Select``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,``1})" />. Although <unmanagedCodeEntityReference>SelectMany</unmanagedCodeEntityReference> works similarly to <unmanagedCodeEntityReference>Select</unmanagedCodeEntityReference>, it differs in that the transform function returns a collection that is then expanded by <unmanagedCodeEntityReference>SelectMany</unmanagedCodeEntityReference> before it is returned.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Projects each element of a sequence into a new form by incorporating the element's index.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements are the result of invoking the transform function on each element of <paramref name="source" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to invoke a transform function on.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each source element; the second parameter of the function represents the index of the source element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="selector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Select&lt;TSource,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Select&lt;TSource,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TResult&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Select&lt;TSource, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TResult&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>This projection method requires the transform function, <paramref name="selector" />, to produce one value for each value in the source sequence, <paramref name="source" />. If <paramref name="selector" /> returns a value that is itself a collection, it is up to the consumer to traverse the subsequences manually. In such a situation, it might be better for your query to return a single coalesced sequence of values. To achieve this, use the <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})" /> method instead of <see cref="M:System.Linq.Enumerable.Select``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})" />. Although <unmanagedCodeEntityReference>SelectMany</unmanagedCodeEntityReference> works similarly to <unmanagedCodeEntityReference>Select</unmanagedCodeEntityReference>, it differs in that the transform function returns a collection that is then expanded by <unmanagedCodeEntityReference>SelectMany</unmanagedCodeEntityReference> before it is returned.</para>
          <para>In query expression syntax, a select (csprcs) or Select (vbprvb) clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Select" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Projects each element of a sequence into a new form.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements are the result of invoking the transform function on each element of <paramref name="source" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to invoke a transform function on.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="selector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SelectMany&lt;TSource,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; SelectMany&lt;TSource,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,System.Collections.Generic.IEnumerable&lt;TResult&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; SelectMany&lt;TSource, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Collections.Generic.IEnumerable&lt;TResult&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})" /> method enumerates the input sequence, uses a transform function to map each element to an <see cref="T:System.Collections.Generic.IEnumerable`1" />, and then enumerates and yields the elements of each such <see cref="T:System.Collections.Generic.IEnumerable`1" /> object. That is, for each element of <paramref name="source" />, <paramref name="selector" /> is invoked and a sequence of values is returned. <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})" /> then flattens this two-dimensional collection of collections into a one-dimensional <see cref="T:System.Collections.Generic.IEnumerable`1" /> and returns it. For example, if a query uses <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})" /> to obtain the orders (of type Order) for each customer in a database, the result is of type <unmanagedCodeEntityReference>IEnumerable&lt;Order&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of Order)</unmanagedCodeEntityReference> in vbprvb. If instead the query uses <see cref="M:System.Linq.Enumerable.Select``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})" /> to obtain the orders, the collection of collections of orders is not combined and the result is of type <unmanagedCodeEntityReference>IEnumerable&lt;List&lt;Order&gt;&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of List(Of Order))</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In query expression syntax, each from clause (csprcs) or From clause (vbprvb) after the initial one translates to an invocation of <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Projects each element of a sequence to an <see cref="T:System.Collections.Generic.IEnumerable`1" /> and flattens the resulting sequences into one sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements are the result of invoking the one-to-many transform function on each element of the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to project.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the sequence returned by <paramref name="selector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SelectMany&lt;TSource,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; SelectMany&lt;TSource,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int,System.Collections.Generic.IEnumerable&lt;TResult&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; SelectMany&lt;TSource, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`3&lt;!!TSource, int32, class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int32,System.Collections.Generic.IEnumerable&lt;TResult&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}})" /> method enumerates the input sequence, uses a transform function to map each element to an <see cref="T:System.Collections.Generic.IEnumerable`1" />, and then enumerates and yields the elements of each such <see cref="T:System.Collections.Generic.IEnumerable`1" /> object. That is, for each element of <paramref name="source" />, <paramref name="selector" /> is invoked and a sequence of values is returned. <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}})" /> then flattens this two-dimensional collection of collections into a one-dimensional <see cref="T:System.Collections.Generic.IEnumerable`1" /> and returns it. For example, if a query uses <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}})" /> to obtain the orders (of type Order) for each customer in a database, the result is of type <unmanagedCodeEntityReference>IEnumerable&lt;Order&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of Order)</unmanagedCodeEntityReference> in vbprvb. If instead the query uses <see cref="M:System.Linq.Enumerable.Select``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})" /> to obtain the orders, the collection of collections of orders is not combined and the result is of type <unmanagedCodeEntityReference>IEnumerable&lt;List&lt;Order&gt;&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>IEnumerable(Of List(Of Order))</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>The first argument to <paramref name="selector" /> represents the element to process. The second argument to <paramref name="selector" /> represents the zero-based index of that element in the source sequence. This can be useful if the elements are in a known order and you want to do something with an element at a particular index, for example. It can also be useful if you want to retrieve the index of one or more elements.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Projects each element of a sequence to an <see cref="T:System.Collections.Generic.IEnumerable`1" />, and flattens the resulting sequences into one sequence. The index of each source element is used in the projected form of that element.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements are the result of invoking the one-to-many transform function on each element of an input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to project.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each source element; the second parameter of the function represents the index of the source element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the sequence returned by <paramref name="selector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SelectMany&lt;TSource,TCollection,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; SelectMany&lt;TSource,TCollection,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,System.Collections.Generic.IEnumerable&lt;TCollection&gt;&gt; collectionSelector, Func&lt;TSource,TCollection,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; SelectMany&lt;TSource, TCollection, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, class System.Collections.Generic.IEnumerable`1&lt;!!TCollection&gt;&gt; collectionSelector, class System.Func`3&lt;!!TSource, !!TCollection, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TCollection" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="collectionSelector" Type="System.Func&lt;TSource,System.Collections.Generic.IEnumerable&lt;TCollection&gt;&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TSource,TCollection,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.SelectMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})" /> method is useful when you have to keep the elements of <paramref name="source" /> in scope for query logic that occurs after the call to <see cref="M:System.Linq.Enumerable.SelectMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})" />. See the Example section for a code example. If there is a bidirectional relationship between objects of type <paramref name="TSource" /> and objects of type <paramref name="TCollection" />, that is, if an object of type <paramref name="TCollection" /> provides a property to retrieve the <paramref name="TSource" /> object that produced it, you do not need this overload of <see cref="M:System.Linq.Enumerable.SelectMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})" />. Instead, you can use <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})" /> and navigate back to the <paramref name="TSource" /> object through the <paramref name="TCollection" /> object.</para>
          <para>In query expression syntax, each from clause (csprcs) or From clause (vbprvb) after the initial one translates to an invocation of <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Projects each element of a sequence to an <see cref="T:System.Collections.Generic.IEnumerable`1" />, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements are the result of invoking the one-to-many transform function <paramref name="collectionSelector" /> on each element of <paramref name="source" /> and then mapping each of those sequence elements and their corresponding source element to a result element.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to project.</param>
        <param name="collectionSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element of the input sequence.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element of the intermediate sequence.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TCollection">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the intermediate elements collected by <paramref name="collectionSelector" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the resulting sequence.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SelectMany&lt;TSource,TCollection,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; SelectMany&lt;TSource,TCollection,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int,System.Collections.Generic.IEnumerable&lt;TCollection&gt;&gt; collectionSelector, Func&lt;TSource,TCollection,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; SelectMany&lt;TSource, TCollection, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`3&lt;!!TSource, int32, class System.Collections.Generic.IEnumerable`1&lt;!!TCollection&gt;&gt; collectionSelector, class System.Func`3&lt;!!TSource, !!TCollection, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TCollection" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="collectionSelector" Type="System.Func&lt;TSource,System.Int32,System.Collections.Generic.IEnumerable&lt;TCollection&gt;&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TSource,TCollection,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.SelectMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})" /> method is useful when you have to keep the elements of <paramref name="source" /> in scope for query logic that occurs after the call to <see cref="M:System.Linq.Enumerable.SelectMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})" />. See the Example section for a code example. If there is a bidirectional relationship between objects of type <paramref name="TSource" /> and objects of type <paramref name="TCollection" />, that is, if an object of type <paramref name="TCollection" /> provides a property to retrieve the <paramref name="TSource" /> object that produced it, you do not need this overload of <see cref="M:System.Linq.Enumerable.SelectMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})" />. Instead, you can use <see cref="M:System.Linq.Enumerable.SelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}})" /> and navigate back to the <paramref name="TSource" /> object through the <paramref name="TCollection" /> object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Projects each element of a sequence to an <see cref="T:System.Collections.Generic.IEnumerable`1" />, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. The index of each source element is used in the intermediate projected form of that element.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose elements are the result of invoking the one-to-many transform function <paramref name="collectionSelector" /> on each element of <paramref name="source" /> and then mapping each of those sequence elements and their corresponding source element to a result element.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values to project.</param>
        <param name="collectionSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each source element; the second parameter of the function represents the index of the source element.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element of the intermediate sequence.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TCollection">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the intermediate elements collected by <paramref name="collectionSelector" />.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the resulting sequence.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SequenceEqual&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static bool SequenceEqual&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool SequenceEqual&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.SequenceEqual``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method enumerates the two source sequences in parallel and compares corresponding elements by using the default equality comparer for <paramref name="TSource" />, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />. The default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values of the types that implement the <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> generic interface. To compare a custom data type, you need to implement this interface and provide your own <see cref="M:System.Object.GetHashCode" /> and <see cref="M:System.Object.Equals(System.Object)" /> methods for the type.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if the two source sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type; otherwise, false.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to compare to <paramref name="second" />.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to compare to the first sequence.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SequenceEqual&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static bool SequenceEqual&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second, System.Collections.Generic.IEqualityComparer&lt;TSource&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool SequenceEqual&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second, class System.Collections.Generic.IEqualityComparer`1&lt;!!TSource&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.SequenceEqual``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})" /> method enumerates the two source sequences in parallel and compares corresponding elements by using the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />. If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare elements.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether two sequences are equal by comparing their elements by using a specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if the two source sequences are of equal length and their corresponding elements compare equal according to <paramref name="comparer" />; otherwise, false.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to compare to <paramref name="second" />.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to compare to the first sequence.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to use to compare elements.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Single&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource Single&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource Single&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Single``1(System.Collections.Generic.IEnumerable{``0})" /> method throws an exception if the input sequence is empty. To instead return null when the input sequence is empty, use <see cref="M:System.Linq.Enumerable.SingleOrDefault``1(System.Collections.Generic.IEnumerable{``0})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The single element of the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return the single element of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Single&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource Single&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource Single&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Single``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method throws an exception if the input sequence contains no matching element. To instead return null when no matching element is found, use <see cref="M:System.Linq.Enumerable.SingleOrDefault``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The single element of the input sequence that satisfies a condition.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return a single element from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test an element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SingleOrDefault&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource SingleOrDefault&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource SingleOrDefault&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default value for reference and nullable types is null.</para>
          <para>The <see cref="Overload:System.Linq.Enumerable.SingleOrDefault" /> method does not provide a way to specify a default value. If you want to specify a default value other than default(<paramref name="TSource" />), use the <see cref="M:System.Linq.Enumerable.DefaultIfEmpty``1(System.Collections.Generic.IEnumerable{``0},``0)" /> method as described in the Example section.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The single element of the input sequence, or default(<paramref name="TSource" />) if the sequence contains no elements.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return the single element of.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SingleOrDefault&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource SingleOrDefault&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource SingleOrDefault&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default value for reference and nullable types is null.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The single element of the input sequence that satisfies the condition, or default(<paramref name="TSource" />) if no such element is found.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return a single element from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test an element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Skip&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Skip&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Skip&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>If <paramref name="source" /> contains fewer than <paramref name="count" /> elements, an empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> is returned. If <paramref name="count" /> is less than or equal to zero, all elements of <paramref name="source" /> are yielded.</para>
          <para>The <see cref="M:System.Linq.Enumerable.Take``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" /> and <see cref="M:System.Linq.Enumerable.Skip``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" /> methods are functional complements. Given a sequence coll and an integer n, concatenating the results of coll.Take(n) and coll.Skip(n) yields the same sequence as coll.</para>
          <para>In vbprvb query expression syntax, a Skip clause translates to an invocation of <see cref="M:System.Linq.Enumerable.Skip``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Bypasses a specified number of elements in a sequence and then returns the remaining elements.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements that occur after the specified index in the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return elements from.</param>
        <param name="count">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of elements to skip before returning the remaining elements.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SkipWhile&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; SkipWhile&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; SkipWhile&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.SkipWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>This method tests each element of <paramref name="source" /> by using <paramref name="predicate" /> and skips the element if the result is true. After the predicate function returns false for an element, that element and the remaining elements in <paramref name="source" /> are yielded and there are no more invocations of <paramref name="predicate" />.</para>
          <para>If <paramref name="predicate" /> returns true for all elements in the sequence, an empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> is returned.</para>
          <para>The <see cref="Overload:System.Linq.Enumerable.TakeWhile" /> and <see cref="Overload:System.Linq.Enumerable.SkipWhile" /> methods are functional complements. Given a sequence coll and a pure function p, concatenating the results of coll.TakeWhile(p) and coll.SkipWhile(p) yields the same sequence as coll.</para>
          <para>In vbprvb query expression syntax, a Skip While clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.SkipWhile" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by <paramref name="predicate" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return elements from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="SkipWhile&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; SkipWhile&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; SkipWhile&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`3&lt;!!TSource, int32, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Int32,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.SkipWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Boolean})" /> method tests each element of <paramref name="source" /> by using <paramref name="predicate" /> and skips the element if the result is true. After the predicate function returns false for an element, that element and the remaining elements in <paramref name="source" /> are yielded and there are no more invocations of <paramref name="predicate" />.</para>
          <para>If <paramref name="predicate" /> returns true for all elements in the sequence, an empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> is returned.</para>
          <para>The first argument of <paramref name="predicate" /> represents the element to test. The second argument represents the zero-based index of the element within <paramref name="source" />.</para>
          <para>The <see cref="Overload:System.Linq.Enumerable.TakeWhile" /> and <see cref="Overload:System.Linq.Enumerable.SkipWhile" /> methods are functional complements. Given a sequence coll and a pure function p, concatenating the results of coll.TakeWhile(p) and coll.SkipWhile(p) yields the same sequence as coll.</para>
          <para>In vbprvb query expression syntax, a Skip While clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.SkipWhile" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by <paramref name="predicate" />.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to return elements from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each source element for a condition; the second parameter of the function represents the index of the source element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static decimal Sum (this System.Collections.Generic.IEnumerable&lt;decimal&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Sum(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Decimal&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Decimal&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable{System.Decimal})" /> method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Decimal" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static double Sum (this System.Collections.Generic.IEnumerable&lt;double&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Sum(class System.Collections.Generic.IEnumerable`1&lt;float64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Double&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Double" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static int Sum (this System.Collections.Generic.IEnumerable&lt;int&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Sum(class System.Collections.Generic.IEnumerable`1&lt;int32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int32&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int32" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static long Sum (this System.Collections.Generic.IEnumerable&lt;long&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 Sum(class System.Collections.Generic.IEnumerable`1&lt;int64&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Int64&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Int64" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Sum (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;decimal&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Sum(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Decimal&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of nullable <see cref="T:System.Decimal" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Decimal" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Sum (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;double&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Sum(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Double&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of nullable <see cref="T:System.Double" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Double" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static Nullable&lt;int&gt; Sum (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;int&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int32&gt; Sum(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int32&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int32&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of nullable <see cref="T:System.Int32" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int32" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static Nullable&lt;long&gt; Sum (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;long&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int64&gt; Sum(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;int64&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int64&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Int64&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of nullable <see cref="T:System.Int64" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Int64" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Sum (this System.Collections.Generic.IEnumerable&lt;Nullable&lt;float&gt;&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Sum(class System.Collections.Generic.IEnumerable`1&lt;valuetype System.Nullable`1&lt;float32&gt;&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Nullable&lt;System.Single&gt;&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of nullable <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of nullable <see cref="T:System.Single" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum">
      <MemberSignature Language="C#" Value="public static float Sum (this System.Collections.Generic.IEnumerable&lt;float&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Sum(class System.Collections.Generic.IEnumerable`1&lt;float32&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;System.Single&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of a sequence of <see cref="T:System.Single" /> values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the values in the sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of <see cref="T:System.Single" /> values to calculate the sum of.</param>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static decimal Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,decimal&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Decimal Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Decimal&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Decimal</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Decimal&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Decimal" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of <see cref="T:System.Decimal" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static double Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,double&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Double&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Double" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of <see cref="T:System.Double" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static int Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int32&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Int32" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of <see cref="T:System.Int32" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static long Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,long&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, int64&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Int64&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Int64" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of <see cref="T:System.Int64" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;decimal&gt; Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;decimal&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;valuetype System.Decimal&gt; Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;valuetype System.Decimal&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Decimal&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Decimal&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not included values that are null.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Decimal&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Decimal)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of nullable <see cref="T:System.Decimal" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;double&gt; Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;double&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float64&gt; Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Double&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Double&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Double&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Double)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of nullable <see cref="T:System.Double" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;int&gt; Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;int&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int32&gt; Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int32&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int32&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Int32&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int32)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of nullable <see cref="T:System.Int32" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;long&gt; Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;long&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;int64&gt; Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;int64&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Int64&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Int64&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Int64&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Int64)</unmanagedCodeEntityReference> in vbprvb</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of nullable <see cref="T:System.Int64" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static Nullable&lt;float&gt; Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,Nullable&lt;float&gt;&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Nullable`1&lt;float32&gt; Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, valuetype System.Nullable`1&lt;float32&gt;&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Nullable&lt;System.Single&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Nullable&lt;System.Single&gt;&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns zero if <paramref name="source" /> contains no elements.</para>
          <para>The result does not include values that are null.</para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <unmanagedCodeEntityReference>Nullable&lt;Single&gt;</unmanagedCodeEntityReference> in C# or <unmanagedCodeEntityReference>Nullable(Of Single)</unmanagedCodeEntityReference> in vbprvb.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of nullable <see cref="T:System.Single" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Sum&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static float Sum&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,float&gt; selector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float32 Sum&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, float32&gt; selector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Single</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="selector" Type="System.Func&lt;TSource,System.Single&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.Sum``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Single})" /> method returns zero if <paramref name="source" /> contains no elements. </para>
          <para>You can apply this method to a sequence of arbitrary values if you provide a function, <paramref name="selector" />, that projects the members of <paramref name="source" /> into a numeric type, specifically <see cref="T:System.Single" />.</para>
          <para>In vbprvb query expression syntax, an Aggregate Into Sum() clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.Sum" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the sum of the sequence of <see cref="T:System.Single" /> values that are obtained by invoking a transform function on each element of the input sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The sum of the projected values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence of values that are used to calculate a sum.</param>
        <param name="selector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to apply to each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Take&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Take&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Take&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.Take``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" /> enumerates <paramref name="source" /> and yields elements until <paramref name="count" /> elements have been yielded or <paramref name="source" /> contains no more elements. If <paramref name="count" /> exceeds the number of elements in <paramref name="source" />, all elements of <paramref name="source" /> are returned.</para>
          <para>If <paramref name="count" /> is less than or equal to zero, <paramref name="source" /> is not enumerated and an empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> is returned.</para>
          <para>The <see cref="M:System.Linq.Enumerable.Take``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" /> and <see cref="M:System.Linq.Enumerable.Skip``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" /> methods are functional complements. Given a sequence coll and an integer n, concatenating the results of coll.Take(n) and coll.Skip(n) yields the same sequence as coll.</para>
          <para>In vbprvb query expression syntax, a Take clause translates to an invocation of <see cref="M:System.Linq.Enumerable.Take``1(System.Collections.Generic.IEnumerable{``0},System.Int32)" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns a specified number of contiguous elements from the start of a sequence.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the specified number of elements from the start of the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to return elements from.</param>
        <param name="count">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of elements to return.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="TakeWhile&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; TakeWhile&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; TakeWhile&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.TakeWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" /> method tests each element of <paramref name="source" /> by using <paramref name="predicate" /> and yields the element if the result is true. Enumeration stops when the predicate function returns false for an element or when <paramref name="source" /> contains no more elements.</para>
          <para>The <see cref="Overload:System.Linq.Enumerable.TakeWhile" /> and <see cref="Overload:System.Linq.Enumerable.SkipWhile" /> methods are functional complements. Given a sequence coll and a pure function p, concatenating the results of coll.TakeWhile(p) and coll.SkipWhile(p) yields the same sequence as coll.</para>
          <para>In vbprvb query expression syntax, a Take While clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.TakeWhile" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns elements from a sequence as long as a specified condition is true.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements from the input sequence that occur before the element at which the test no longer passes.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />A sequence to return elements from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="TakeWhile&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; TakeWhile&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; TakeWhile&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`3&lt;!!TSource, int32, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Int32,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The <see cref="M:System.Linq.Enumerable.TakeWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Boolean})" /> method tests each element of <paramref name="source" /> by using <paramref name="predicate" /> and yields the element if the result is true. Enumeration stops when the predicate function returns false for an element or when <paramref name="source" /> contains no more elements.</para>
          <para>The first argument of <paramref name="predicate" /> represents the element to test. The second argument represents the zero-based index of the element within <paramref name="source" />.</para>
          <para>The <see cref="Overload:System.Linq.Enumerable.TakeWhile" /> and <see cref="Overload:System.Linq.Enumerable.SkipWhile" /> methods are functional complements. Given a sequence coll and a pure function p, concatenating the results of coll.TakeWhile(p) and coll.SkipWhile(p) yields the same sequence as coll.</para>
          <para>In vbprvb query expression syntax, a Take While clause translates to an invocation of <see cref="Overload:System.Linq.Enumerable.TakeWhile" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains elements from the input sequence that occur before the element at which the test no longer passes.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The sequence to return elements from.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each source element for a condition; the second parameter of the function represents the index of the source element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ThenBy&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; ThenBy&lt;TSource,TKey&gt; (this System.Linq.IOrderedEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; ThenBy&lt;TSource, TKey&gt;(class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Linq.IOrderedEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>
            <see cref="Overload:System.Linq.Enumerable.ThenBy" /> and <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is also the return type of these methods. This design enables you to specify multiple sort criteria by applying any number of <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> methods.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>This method compares keys by using the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" />.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
          <para>In query expression syntax, an orderby [first criterion], [second criterion] (csprcs) or Order By [first criterion], [second criterion] (vbprvb) clause translates to an invocation of <see cref="M:System.Linq.Enumerable.ThenBy``2(System.Linq.IOrderedEnumerable{``0},System.Func{``0,``1})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Performs a subsequent ordering of the elements in a sequence in ascending order according to a key.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Linq.IOrderedEnumerable`1" /> that contains elements to sort.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ThenBy&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; ThenBy&lt;TSource,TKey&gt; (this System.Linq.IOrderedEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, System.Collections.Generic.IComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; ThenBy&lt;TSource, TKey&gt;(class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Collections.Generic.IComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Linq.IOrderedEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>
            <see cref="Overload:System.Linq.Enumerable.ThenBy" /> and <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is also the return type of these methods. This design enables you to specify multiple sort criteria by applying any number of <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> methods.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>If <paramref name="comparer" /> is null, the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" /> is used to compare keys.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Performs a subsequent ordering of the elements in a sequence in ascending order by using a specified comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Linq.IOrderedEnumerable`1" /> that contains elements to sort.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ThenByDescending&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; ThenByDescending&lt;TSource,TKey&gt; (this System.Linq.IOrderedEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; ThenByDescending&lt;TSource, TKey&gt;(class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Linq.IOrderedEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>
            <see cref="Overload:System.Linq.Enumerable.ThenBy" /> and <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is also the return type of these methods. This design enables you to specify multiple sort criteria by applying any number of <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> methods.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>This sorting method compares keys by using the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" />.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
          <para>In csprcs query expression syntax, an orderby [first criterion], [second criterion] descending clause translates to an invocation of <see cref="M:System.Linq.Enumerable.ThenByDescending``2(System.Linq.IOrderedEnumerable{``0},System.Func{``0,``1})" />.</para>
          <para>In vbprvb query expression syntax, an Order By [first criterion], [second criterion] Descending clause translates to an invocation of <see cref="M:System.Linq.Enumerable.ThenByDescending``2(System.Linq.IOrderedEnumerable{``0},System.Func{``0,``1})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Performs a subsequent ordering of the elements in a sequence in descending order, according to a key.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted in descending order according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Linq.IOrderedEnumerable`1" /> that contains elements to sort.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ThenByDescending&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.IOrderedEnumerable&lt;TSource&gt; ThenByDescending&lt;TSource,TKey&gt; (this System.Linq.IOrderedEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, System.Collections.Generic.IComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; ThenByDescending&lt;TSource, TKey&gt;(class System.Linq.IOrderedEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Collections.Generic.IComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.IOrderedEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Linq.IOrderedEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>To order a sequence by the values of the elements themselves, specify the identity function (x =&gt; x in csprcs or Function(x) x in vbprvb) for <paramref name="keySelector" />.</para>
          <para>
            <see cref="Overload:System.Linq.Enumerable.ThenBy" /> and <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> are defined to extend the type <see cref="T:System.Linq.IOrderedEnumerable`1" />, which is also the return type of these methods. This design enables you to specify multiple sort criteria by applying any number of <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" /> methods.</para>
          <block subset="none" type="note">
            <para>Because <see cref="T:System.Linq.IOrderedEnumerable`1" /> inherits from <see cref="T:System.Collections.Generic.IEnumerable`1" />, you can call <see cref="Overload:System.Linq.Enumerable.OrderBy" /> or <see cref="Overload:System.Linq.Enumerable.OrderByDescending" /> on the results of a call to <see cref="Overload:System.Linq.Enumerable.OrderBy" />, <see cref="Overload:System.Linq.Enumerable.OrderByDescending" />, <see cref="Overload:System.Linq.Enumerable.ThenBy" /> or <see cref="Overload:System.Linq.Enumerable.ThenByDescending" />. Doing this introduces a new primary ordering that ignores the previously established ordering.</para>
          </block>
          <para>If <paramref name="comparer" /> is null, the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" /> is used to compare keys.</para>
          <para>This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Performs a subsequent ordering of the elements in a sequence in descending order by using a specified comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Linq.IOrderedEnumerable`1" /> whose elements are sorted in descending order according to a key.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Linq.IOrderedEnumerable`1" /> that contains elements to sort.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToArray&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static TSource[] ToArray&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TSource[] ToArray&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>TSource[]</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToArray``1(System.Collections.Generic.IEnumerable{``0})" /> method forces immediate query evaluation and returns an array that contains the query results. You can append this method to your query in order to obtain a cached copy of the query results.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.ToList``1(System.Collections.Generic.IEnumerable{``0})" /> has similar behavior but returns a <see cref="T:System.Collections.Generic.List`1" /> instead of an array.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates an array from a <see cref="T:System.Collections.Generic.IEnumerable`1" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An array that contains the elements from the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create an array from.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToDictionary&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.Dictionary&lt;TKey,TSource&gt; ToDictionary&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.Dictionary`2&lt;!!TKey, !!TSource&gt; ToDictionary&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.Dictionary&lt;TKey,TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToDictionary``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})" /> method uses the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Collections.Generic.Dictionary`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to a specified key selector function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Collections.Generic.Dictionary`2" /> that contains keys and values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Collections.Generic.Dictionary`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToDictionary&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.Dictionary&lt;TKey,TSource&gt; ToDictionary&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.Dictionary`2&lt;!!TKey, !!TSource&gt; ToDictionary&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.Dictionary&lt;TKey,TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If <paramref name="comparer" /> is null, the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Collections.Generic.Dictionary`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to a specified key selector function and key comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Collections.Generic.Dictionary`2" /> that contains keys and values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Collections.Generic.Dictionary`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the keys returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToDictionary&lt;TSource,TKey,TElement&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.Dictionary&lt;TKey,TElement&gt; ToDictionary&lt;TSource,TKey,TElement&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.Dictionary`2&lt;!!TKey, !!TElement&gt; ToDictionary&lt;TSource, TKey, TElement&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.Dictionary&lt;TKey,TElement&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToDictionary``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})" /> method uses the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Collections.Generic.Dictionary`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to specified key selector and element selector functions.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Collections.Generic.Dictionary`2" /> that contains values of type <paramref name="TElement" /> selected from the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Collections.Generic.Dictionary`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to produce a result element value from each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="elementSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToDictionary&lt;TSource,TKey,TElement&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.Dictionary&lt;TKey,TElement&gt; ToDictionary&lt;TSource,TKey,TElement&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.Dictionary`2&lt;!!TKey, !!TElement&gt; ToDictionary&lt;TSource, TKey, TElement&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.Dictionary&lt;TKey,TElement&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If <paramref name="comparer" /> is null, the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Collections.Generic.Dictionary`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to a specified key selector function, a comparer, and an element selector function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Collections.Generic.Dictionary`2" /> that contains values of type <paramref name="TElement" /> selected from the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Collections.Generic.Dictionary`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to produce a result element value from each element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="elementSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToList&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.List&lt;TSource&gt; ToList&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.List`1&lt;!!TSource&gt; ToList&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.List&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToList``1(System.Collections.Generic.IEnumerable{``0})" /> method forces immediate query evaluation and returns a <see cref="T:System.Collections.Generic.List`1" /> that contains the query results. You can append this method to your query in order to obtain a cached copy of the query results.</para>
          <para>
            <see cref="M:System.Linq.Enumerable.ToArray``1(System.Collections.Generic.IEnumerable{``0})" /> has similar behavior but returns an array instead of a <see cref="T:System.Collections.Generic.List`1" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Collections.Generic.List`1" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Collections.Generic.List`1" /> that contains elements from the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Collections.Generic.List`1" /> from.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToLookup&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.ILookup&lt;TKey,TSource&gt; ToLookup&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.ILookup`2&lt;!!TKey, !!TSource&gt; ToLookup&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.ILookup&lt;TKey,TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToLookup``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})" /> method returns a <see cref="T:System.Linq.Lookup`2" />, a one-to-many dictionary that maps keys to collections of values. A <see cref="T:System.Linq.Lookup`2" /> differs from a <see cref="T:System.Collections.Generic.Dictionary`2" />, which performs a one-to-one mapping of keys to single values.</para>
          <para>The default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Linq.Lookup`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to a specified key selector function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Linq.Lookup`2" /> that contains keys and values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Linq.Lookup`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToLookup&lt;TSource,TKey&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.ILookup&lt;TKey,TSource&gt; ToLookup&lt;TSource,TKey&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.ILookup`2&lt;!!TKey, !!TSource&gt; ToLookup&lt;TSource, TKey&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.ILookup&lt;TKey,TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToLookup``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})" /> method returns a <see cref="T:System.Linq.Lookup`2" />, a one-to-many dictionary that maps keys to collections of values. A <see cref="T:System.Linq.Lookup`2" /> is different to a <see cref="T:System.Collections.Generic.Dictionary`2" />, which performs a one-to-one mapping of keys to single values.</para>
          <para>If <paramref name="comparer" /> is null, the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Linq.Lookup`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to a specified key selector function and key comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Linq.Lookup`2" /> that contains keys and values.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Linq.Lookup`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToLookup&lt;TSource,TKey,TElement&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.ILookup&lt;TKey,TElement&gt; ToLookup&lt;TSource,TKey,TElement&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.ILookup`2&lt;!!TKey, !!TElement&gt; ToLookup&lt;TSource, TKey, TElement&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.ILookup&lt;TKey,TElement&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToLookup``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})" /> method returns a <see cref="T:System.Linq.Lookup`2" />, a one-to-many dictionary that maps keys to collections of values. A <see cref="T:System.Linq.Lookup`2" /> differs from a <see cref="T:System.Collections.Generic.Dictionary`2" />, which performs a one-to-one mapping of keys to single values.</para>
          <para>The default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Linq.Lookup`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to specified key selector and element selector functions.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Linq.Lookup`2" /> that contains values of type <paramref name="TElement" /> selected from the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Linq.Lookup`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to produce a result element value from each element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="elementSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="ToLookup&lt;TSource,TKey,TElement&gt;">
      <MemberSignature Language="C#" Value="public static System.Linq.ILookup&lt;TKey,TElement&gt; ToLookup&lt;TSource,TKey,TElement&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,TKey&gt; keySelector, Func&lt;TSource,TElement&gt; elementSelector, System.Collections.Generic.IEqualityComparer&lt;TKey&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.ILookup`2&lt;!!TKey, !!TElement&gt; ToLookup&lt;TSource, TKey, TElement&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, !!TKey&gt; keySelector, class System.Func`2&lt;!!TSource, !!TElement&gt; elementSelector, class System.Collections.Generic.IEqualityComparer`1&lt;!!TKey&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Linq.ILookup&lt;TKey,TElement&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
        <TypeParameter Name="TKey" />
        <TypeParameter Name="TElement" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="keySelector" Type="System.Func&lt;TSource,TKey&gt;" />
        <Parameter Name="elementSelector" Type="System.Func&lt;TSource,TElement&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TKey&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Linq.Enumerable.ToLookup``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})" /> method returns a <see cref="T:System.Linq.Lookup`2" />, a one-to-many dictionary that maps keys to collections of values. A <see cref="T:System.Linq.Lookup`2" /> differs from a <see cref="T:System.Collections.Generic.Dictionary`2" />, which performs a one-to-one mapping of keys to single values.</para>
          <para>If <paramref name="comparer" /> is null, the default equality comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> is used to compare keys.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a <see cref="T:System.Linq.Lookup`2" /> from an <see cref="T:System.Collections.Generic.IEnumerable`1" /> according to a specified key selector function, a comparer and an element selector function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Linq.Lookup`2" /> that contains values of type <paramref name="TElement" /> selected from the input sequence.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEnumerable`1" /> to create a <see cref="T:System.Linq.Lookup`2" /> from.</param>
        <param name="keySelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to extract a key from each element.</param>
        <param name="elementSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A transform function to produce a result element value from each element.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare keys.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
        <typeparam name="TKey">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the key returned by <paramref name="keySelector" />.</typeparam>
        <typeparam name="TElement">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the value returned by <paramref name="elementSelector" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Union&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Union&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Union&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>This method excludes duplicates from the return set. This is different behavior to the <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method, which returns all the elements in the input sequences including duplicates.</para>
          <para>The default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values of the types that implement the <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> generic interface. To compare a custom data type, you need to implement this interface and provide your own <see cref="M:System.Object.GetHashCode" /> and <see cref="M:System.Object.Equals(System.Object)" /> methods for the type.</para>
          <para>When the object returned by this method is enumerated, <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> enumerates <paramref name="first" /> and <paramref name="second" /> in that order and yields each element that has not already been yielded.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Produces the set union of two sequences by using the default equality comparer.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements from both input sequences, excluding duplicates.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements form the first set for the union.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements form the second set for the union.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Union&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Union&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; first, System.Collections.Generic.IEnumerable&lt;TSource&gt; second, System.Collections.Generic.IEqualityComparer&lt;TSource&gt; comparer);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Union&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; second, class System.Collections.Generic.IEqualityComparer`1&lt;!!TSource&gt; comparer) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" />
        <Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;TSource&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>If c<paramref name="omparer" /> is null, the default equality comparer, <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" />, is used to compare values.</para>
          <para>When the object returned by this method is enumerated, <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> enumerates <paramref name="first" /> and <paramref name="second" /> in that order and yields each element that has not already been yielded.</para>
          <para>The <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method differs from the <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method because the <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> method returns all the elements in the input sequences including duplicates, whereas <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" /> returns only unique values.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Produces the set union of two sequences by using a specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements from both input sequences, excluding duplicates.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements form the first set for the union.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> whose distinct elements form the second set for the union.</param>
        <param name="comparer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> to compare values.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the input sequences.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Where&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Where&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Where&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`2&lt;!!TSource, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>In query expression syntax, a where (csprcs) or Where (vbprvb) clause translates to an invocation of <see cref="M:System.Linq.Enumerable.Where``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Filters a sequence of values based on a predicate.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains elements from the input sequence that satisfy the condition.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to filter.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each element for a condition.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Where&lt;TSource&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TSource&gt; Where&lt;TSource&gt; (this System.Collections.Generic.IEnumerable&lt;TSource&gt; source, Func&lt;TSource,int,bool&gt; predicate);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; Where&lt;TSource&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TSource&gt; source, class System.Func`3&lt;!!TSource, int32, bool&gt; predicate) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>3.5.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TSource&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TSource" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="source" Type="System.Collections.Generic.IEnumerable&lt;TSource&gt;" RefType="this" />
        <Parameter Name="predicate" Type="System.Func&lt;TSource,System.Int32,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The first argument of <paramref name="predicate" /> represents the element to test. The second argument represents the zero-based index of the element within <paramref name="source" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains elements from the input sequence that satisfy the condition.</para>
        </returns>
        <param name="source">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.Generic.IEnumerable`1" /> to filter.</param>
        <param name="predicate">
          <attribution license="cc4" from="Microsoft" modified="false" />A function to test each source element for a condition; the second parameter of the function represents the index of the source element.</param>
        <typeparam name="TSource">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of <paramref name="source" />.</typeparam>
      </Docs>
    </Member>
    <Member MemberName="Zip&lt;TFirst,TSecond,TResult&gt;">
      <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable&lt;TResult&gt; Zip&lt;TFirst,TSecond,TResult&gt; (this System.Collections.Generic.IEnumerable&lt;TFirst&gt; first, System.Collections.Generic.IEnumerable&lt;TSecond&gt; second, Func&lt;TFirst,TSecond,TResult&gt; resultSelector);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1&lt;!!TResult&gt; Zip&lt;TFirst, TSecond, TResult&gt;(class System.Collections.Generic.IEnumerable`1&lt;!!TFirst&gt; first, class System.Collections.Generic.IEnumerable`1&lt;!!TSecond&gt; second, class System.Func`3&lt;!!TFirst, !!TSecond, !!TResult&gt; resultSelector) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.Generic.IEnumerable&lt;TResult&gt;</ReturnType>
      </ReturnValue>
      <TypeParameters>
        <TypeParameter Name="TFirst" />
        <TypeParameter Name="TSecond" />
        <TypeParameter Name="TResult" />
      </TypeParameters>
      <Parameters>
        <Parameter Name="first" Type="System.Collections.Generic.IEnumerable&lt;TFirst&gt;" RefType="this" />
        <Parameter Name="second" Type="System.Collections.Generic.IEnumerable&lt;TSecond&gt;" />
        <Parameter Name="resultSelector" Type="System.Func&lt;TFirst,TSecond,TResult&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its <unmanagedCodeEntityReference>GetEnumerator</unmanagedCodeEntityReference> method directly or by using foreach in csprcs or For Each in vbprvb.</para>
          <para>The method merges each element of the first sequence with an element that has the same index in the second sequence. If the sequences do not have the same number of elements, the method merges sequences until it reaches the end of one of them. For example, if one sequence has three elements and the other one has four, the result sequence will have only three elements.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains merged elements of two input sequences.</para>
        </returns>
        <param name="first">
          <attribution license="cc4" from="Microsoft" modified="false" />The first sequence to merge.</param>
        <param name="second">
          <attribution license="cc4" from="Microsoft" modified="false" />The second sequence to merge.</param>
        <param name="resultSelector">
          <attribution license="cc4" from="Microsoft" modified="false" />A function that specifies how to merge the elements from the two sequences.</param>
        <typeparam name="TFirst">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the first input sequence.</typeparam>
        <typeparam name="TSecond">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the second input sequence.</typeparam>
        <typeparam name="TResult">
          <attribution license="cc4" from="Microsoft" modified="false" />The type of the elements of the result sequence.</typeparam>
      </Docs>
    </Member>
  </Members>
</Type>