Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IndexExpression-Klasse

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Stellt die Indizierung einer Eigenschaft oder eines Arrays dar.

Namespace:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

System.Object
  System.Linq.Expressions.Expression
    System.Linq.Expressions.IndexExpression

public sealed class IndexExpression : Expression, IArgumentProvider

NameBeschreibung
System_CAPS_pubpropertyArguments

Ruft die Argumente ab, die zum Indizieren der Eigenschaft oder des Arrays verwendet werden.

System_CAPS_pubpropertyCanReduce

Gibt an, dass der Knoten zu einem einfacheren Knoten reduziert werden kann. Wenn true zurückgegeben wird, kann Reduce() aufgerufen werden, um das reduzierte Formular zu erzeugen.(Geerbt von „Expression“.)

System_CAPS_pubpropertyIndexer

Ruft die PropertyInfo für die Eigenschaft ab, wenn der Ausdruck eine indizierte Eigenschaft darstellt. Gibt andernfalls "null" zurück.

System_CAPS_pubpropertyNodeType

Gibt den Knotentyp dieses Expression zurück.(Überschreibt Expression.NodeType.)

System_CAPS_pubpropertyObject

Ein zu indizierendes Objekt.

System_CAPS_pubpropertyType

Ruft den statischen Typ des Ausdrucks ab, den dieser Expression darstellt.(Überschreibt Expression.Type.)

NameBeschreibung
System_CAPS_protmethodAccept(ExpressionVisitor)

Sendet an die spezifische Visit-Methode für diesen Knotentyp. Beispielsweise ruft MethodCallExpression die Methode VisitMethodCall auf.(Geerbt von „Expression“.)

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodReduce()

Reduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss.(Geerbt von „Expression“.)

System_CAPS_pubmethodReduceAndCheck()

Reduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss.(Geerbt von „Expression“.)

System_CAPS_pubmethodReduceExtensions()

Reduziert den Ausdruck zu einem bekannten Knotentyp (kein Erweiterungsknoten) oder gibt nur den Ausdruck zurück, wenn es sich um einen bereits bekannten Typ handelt.(Geerbt von „Expression“.)

System_CAPS_pubmethodToString()

Gibt eine Textdarstellung des Expression zurück.(Geerbt von „Expression“.)

System_CAPS_pubmethodUpdate(Expression, IEnumerable<Expression>)

Erstellt einen neuen Ausdruck, der diesem ähnelt, verwendet jedoch die angegebenen untergeordneten Elemente. Wenn alle untergeordneten Elemente identisch sind, wird dieser Ausdruck zurückgegeben.

System_CAPS_protmethodVisitChildren(ExpressionVisitor)

Reduziert den Knoten und ruft dann den Visitor-Delegaten für den reduzierten Ausdruck auf. Die Methode löst eine Ausnahme aus, wenn der Knoten nicht reduziert werden kann.(Geerbt von „Expression“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethodIArgumentProvider.GetArgument(Int32)

Gibt das Argument bei Index zurück, das ausgelöst wird, wenn der Index außerhalb des gültigen Bereichs liegt. Sie sollten diesen Member nicht verwenden. Es ist nur aufgrund der Assemblyumgestaltung öffentlich und wird intern zur Leistungsoptimierung verwendet.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIArgumentProvider.ArgumentCount

Gibt die Anzahl der Argumente für den Ausdrucksstrukturknoten zurück. Sie sollten diesen Member nicht verwenden. Er ist nur aufgrund der Assemblyumgestaltung öffentlich und wird intern zur Leistungsoptimierung verwendet.

Im folgenden Codebeispiel wird veranschaulicht, wie zum Erstellen eines Objekts von der IndexExpression ', und verwenden Sie es mit den Wert eines Array-Elements ändern die ArrayAccess Methode.

// Add the following directive to your file:
// using System.Linq.Expressions;  

// This parameter expression represents a variable that will hold the array.
ParameterExpression arrayExpr = Expression.Parameter(typeof(int[]), "Array");

// This parameter expression represents an array index.            
ParameterExpression indexExpr = Expression.Parameter(typeof(int), "Index");

// This parameter represents the value that will be added to a corresponding array element.
ParameterExpression valueExpr = Expression.Parameter(typeof(int), "Value");

// This expression represents an array access operation.
// It can be used for assigning to, or reading from, an array element.
Expression arrayAccessExpr = Expression.ArrayAccess(
    arrayExpr,
    indexExpr
);

// This lambda expression assigns a value provided to it to a specified array element.
// The array, the index of the array element, and the value to be added to the element
// are parameters of the lambda expression.
Expression<Func<int[], int, int, int>> lambdaExpr = Expression.Lambda<Func<int[], int, int, int>>(
    Expression.Assign(arrayAccessExpr, Expression.Add(arrayAccessExpr, valueExpr)),
    arrayExpr,
    indexExpr,
    valueExpr
);

// Print out expressions.
Console.WriteLine("Array Access Expression:");
Console.WriteLine(arrayAccessExpr.ToString());

Console.WriteLine("Lambda Expression:");
Console.WriteLine(lambdaExpr.ToString());

Console.WriteLine("The result of executing the lambda expression:");

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
// Parameters passed to the Invoke method are passed to the lambda expression.
Console.WriteLine(lambdaExpr.Compile().Invoke(new int[] { 10, 20, 30 }, 0, 5));

// This code example produces the following output:
//
// Array Access Expression:
// Array[Index]

// Lambda Expression:
// (Array, Index, Value) => (Array[Index] = (Array[Index] + Value))

// The result of executing the lambda expression:
// 15

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 4.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: