Читать книгу Dojos für Entwickler - Stefan Lieser - Страница 29

Eine Zeile

Оглавление

Durch die Generatoren können die einzelnen Werte der Spalten erzeugt werden. Um eine ganze Datenzeile zu erzeugen, muss jeder Generator einmal aufgerufen werden, um seinen jeweils nächsten Wert zu liefern. Dies ist bei Verwendung von LINQ ganz einfach, siehe Listing 3.

Listing 3: Werte erzeugen.

public static IEnumerable<object> GenerateValues(this IEnumerable<ColumnDefinition>

columnDefinitions) {

return columnDefinitions

.Select(x => x.Generator)

.Select(x => x.GenerateValue());

}

In der Methode wird über die Aufzählung der Spaltendefinitionen iteriert und durch das erste Select jeweils der Generator aus der Spaltendefinition entnommen. Durch das zweite Select wird aus jedem Generator ein Wert abgerufen. Das Ergebnis ist eine Aufzählung der von den Generatoren gelieferten Werte. Diese Aufzählung wird später an den Konstruktor einer Zeile übergeben, siehe Listing 4.

Listing 4: Eine Datenzeile generieren.

public static Line GenerateLine(this IEnumerable<object> values)

{

return new Line(values);

}

Dojos für Entwickler

Подняться наверх