この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Enumerable.AsEnumerable<TSource> メソッド (IEnumerable<TSource>)

 

公開日: 2016年10月

として型指定された入力返す IEnumerable<T>します。

名前空間:   System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

public static IEnumerable<TSource> AsEnumerable<TSource>(
	this IEnumerable<TSource> source
)

パラメーター

source
Type: System.Collections.Generic.IEnumerable<TSource>

入力シーケンス IEnumerable<T>します。

戻り値

Type: System.Collections.Generic.IEnumerable<TSource>

として型指定された入力シーケンス IEnumerable<T>します。

型パラメーター

TSource

要素の型 sourceします。

AsEnumerable<TSource>(IEnumerable<TSource>) メソッドも何も起こりません以外のコンパイル時の型を変更する source を実装する型から IEnumerable<T>IEnumerable<T> 自体です。

AsEnumerable<TSource>(IEnumerable<TSource>) シーケンスを実装すると、クエリの実装のどちらかを選択することできます IEnumerable<T> も使用可能なパブリック クエリ メソッドの別のセットを持ちます。 たとえば、ジェネリック クラスを指定 Table を実装する IEnumerable<T> 、独自のメソッドのなど Where, 、Select, 、および SelectMany, への呼び出し Where は起動して、パブリック Where メソッドの Tableです。 A Table をデータベース テーブルを表す型でしたが、 Where式ツリーとして表された述語の引数を受け取り、リモート実行ツリーを SQL に変換するメソッドです。 リモート実行が必要ない場合、たとえば、述語には、ローカルのメソッドが呼び出されて、 AsEnumerable<TSource> メソッドは、独自のメソッドを非表示にし、代わりに、標準クエリ演算子を使用するために使用できます。

次のコード例を使用する方法を示しています AsEnumerable<TSource>(IEnumerable<TSource>) の型を非表示にするカスタム Where メソッドは、標準クエリ演算子の実装を必要とします。

// Custom class.
class Clump<T> : List<T>
{
    // Custom implementation of Where().
    public IEnumerable<T> Where(Func<T, bool> predicate)
    {
        Console.WriteLine("In Clump's implementation of Where().");
        return Enumerable.Where(this, predicate);
    }
}

static void AsEnumerableEx1()
{
    // Create a new Clump<T> object.
    Clump<string> fruitClump =
        new Clump<string> { "apple", "passionfruit", "banana", 
            "mango", "orange", "blueberry", "grape", "strawberry" };

    // First call to Where():
    // Call Clump's Where() method with a predicate.
    IEnumerable<string> query1 =
        fruitClump.Where(fruit => fruit.Contains("o"));

    Console.WriteLine("query1 has been created.\n");

    // Second call to Where():
    // First call AsEnumerable() to hide Clump's Where() method and thereby
    // force System.Linq.Enumerable's Where() method to be called.
    IEnumerable<string> query2 =
        fruitClump.AsEnumerable().Where(fruit => fruit.Contains("o"));

    // Display the output.
    Console.WriteLine("query2 has been created.");
}

// This code produces the following output:
//
// In Clump's implementation of Where().
// query1 has been created.
//
// query2 has been created.

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
3.5 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: