Wie Sie das erste element von IEnumerable
Gibt es einen besseren Weg, immer das erste element der IEnumerable-Typ:
foreach (Image image in imgList)
{
picture.Width = (short)image.Columns;
picture.Height = (short)image.Rows;
break;
}
Dies ist die genaue Erklärung von der Art:
public class ImageList : IEnumerable, IDisposable
InformationsquelleAutor der Frage Fitzchak Yitzchaki | 2010-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Mark Seemann
Wenn Sie nicht verwenden können, LINQ Sie können auch den Zähler direkt durch
imgList.GetEnumerator()
Und dann
.MoveNext()
zu bewegen, um das erste element..Current
dann geben Sie das erste element.InformationsquelleAutor der Antwort JonC
Die Erweiterung
.First()
greifen, werden das erste Element in eine zählbare. Wenn die Sammlung leer ist, wird eine Ausnahme geworfen..FirstOrDefault()
zurückkehren wird ein default-Wert für eine leere collection (null für Referenztypen). Wähle deine Waffe mit bedacht!InformationsquelleAutor der Antwort Jarrett Meyer
Möglicherweise etwas irrelevant zu Ihrer aktuellen situation, aber es ist auch ein
.Single()
und ein.SingleOrDefault()
gibt das erste element und löst eine Ausnahme aus, wenn es nicht genau ein element in der Sammlung (.Single()
) oder wenn es mehr als ein element in der Sammlung (.SingleOrDefault()
).Diese kann sehr nützlich sein, wenn Sie die Logik, das hängt nur mit einem einzigen (oder null) Objekte in der Liste. Obwohl ich vermute, Sie sind nicht das, was Sie hier wollten.
InformationsquelleAutor der Antwort wasatz
Hatte ich ein Problem, wo ich meine geänderte datasource aus einer bindingsource zu einer entity framework-Abfrage.
Mit entity framework diese eine exception werfen `Unable to cast den Typ 'Kunde' Typ 'object'. LINQ to Entities unterstützt nur casting EDM primitive oder Aufzählungstypen.
Die Klasse, wo mein code war nicht ein Verweis auf das lib mit dem Modell so
...Cast<customer>
war nicht möglich.Jedenfalls habe ich diese Vorgehensweise
in Verbindung mit einem IEnumerable-Erweiterung, die verwendet reflektion,
fühlen Sie sich frei, um zu implementieren eine caching pro Typ um die Leistung zu verbessern.
InformationsquelleAutor der Antwort Jürgen Steinblock