Wie Sie einen index in einer var in LINQ?
Ich versuche, das folgende Stück code, zur Arbeit in LINQPad, bin aber nicht in der Lage, um den index in eine var. Weiß jemand, wie man einen index in eine var in LINQ?
string[] sa = {"one", "two", "three"};
sa[1].Dump();
var va = sa.Select( (a,i) => new {Line = a, Index = i});
va[1].Dump();
//Cannot apply indexing with [] to an expression of type 'System.Collections.Generic.IEnumerable<AnonymousType#1>'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie der Kommentar sagt, Sie kann nicht angewendet werden, - Indizierung mit
[]
zu einem Ausdruck vom TypSystem.Collections.Generic.IEnumerable<T>
. Die IEnumerable-Schnittstelle unterstützt nur die MethodeGetEnumerator()
. Aber mit LINQ können Sie rufen Sie die extension-MethodeElementAt(int)
.Können Sie nicht anwenden, einen index, einen var-es sei denn, es ist ein Wendeplatten-Typ:
In beiden Fällen
selectVar
ist eigentlichIEnumerable<'a>
- nicht eine indizierte geben. Sie können ganz einfach konvertieren Sie Sie zu einem aber: