次の方法で共有


IncrementalValueProvider<TValue> 構造体

定義

実行パイプラインの構築の一部として変換できる 1 つの値のプロバイダーを表します。

public readonly struct IncrementalValueProvider<TValue>
type IncrementalValueProvider<'Value> = struct
Public Structure IncrementalValueProvider(Of TValue)

型パラメーター

TValue

このソースがアクセスを提供する値の型

継承
IncrementalValueProvider<TValue>

注釈

これは、直接使用できない不透明な型です。 代わりに、 IIncrementalGenerator は、実行パイプラインを構築するときに一連の値プロバイダーを受け取ります。 その後、一連の拡張メソッドを使用して、実際のパイプラインを作成するデータに対する変換を作成します。

拡張メソッド

名前 説明
Combine<TLeft,TRight>(IncrementalValueProvider<TLeft>, IncrementalValueProvider<TRight>)

2 つの IncrementalValueProvider<TValue>を組み合わせて、タプルの新しい IncrementalValueProvider<TValue> にします。 両方のプロバイダーの単一の値がペアになります。

Select<TSource,TResult>(IncrementalValueProvider<TSource>, Func<TSource,CancellationToken,TResult>)

値に変換関数を適用して、 IncrementalValueProvider<TValue> を新しい IncrementalValueProvider<TValue> に変換します。 これは 1 対 1 の変換であり、各入力値によって出力値が 1 つだけ生成されます。

SelectMany<TSource,TResult>(IncrementalValueProvider<TSource>, Func<TSource,CancellationToken,IEnumerable<TResult>>)

入力値に対して 0 個以上の結果を返す変換関数を適用して、 IncrementalValueProvider<TValue> を新しい IncrementalValuesProvider<TValues> に変換します。 これは 1 対多の変換であり、各入力値で 0、1、または複数の出力値を生成できます。

SelectMany<TSource,TResult>(IncrementalValueProvider<TSource>, Func<TSource,CancellationToken,ImmutableArray<TResult>>)

入力値に対して 0 個以上の結果を返す変換関数を適用して、 IncrementalValueProvider<TValue> を新しい IncrementalValuesProvider<TValues> に変換します。 これは 1 対多の変換であり、各入力値で 0、1、または複数の出力値を生成できます。

WithComparer<TSource>(IncrementalValueProvider<TSource>, IEqualityComparer<TSource>)

キャッシュ目的でこのプロバイダーの値を比較するときに使用するカスタム IEqualityComparer<T> を指定します。 既定では、ジェネレーター インフラストラクチャは Default を使用して値が変更されたかどうかを判断します。 複雑なオブジェクトの場合や変換を再実行するタイミングを制御する場合など、カスタムの等値ロジックが必要な場合は、このメソッドを使用します。

WithTrackingName<TSource>(IncrementalValueProvider<TSource>, String)

追跡とデバッグを目的として、このプロバイダー ステップに名前を割り当てます。 この名前は、テストと診断のシナリオで使用して、実行パイプラインを理解できます。

適用対象