Ich habe eine Dienstprogrammklasse mit einem Mitglied, das eine iEnumerable<SelectListItem>
zurückgibt. Die Daten werden von der Elementfunktion erfolgreich zurückgegeben, aber ich muss optionale Logik einschließen, um Value
auf einen Indexwert und nicht auf einen von der DB zurückgegebenen Wert festzulegen.Ersatz SelectListItem Wert bedingt in Lambda
beispielsweise die folgenden (Teil-) Datenbankzeile angegeben:
Key Value Group
----- ----- ------
black Black colors
red Red colors
white White colors
blue Blue colors
orange Orange colors
und die folgende Lambda:
private ProgramDbContext _context = new ProgramDbContext();
// Get available options for this design parameter
IEnumerable<SelectListItem> defaultchoices = _context.Settings
.Where(dc => dc.Group == "colors")
.Select(dc => new SelectListItem { Text = dc.Key, Value = dc.Value })
.ToList();
Die oben zurückkehrt, wie erwartet.
Value Text
----- -----
black Black
red Red
white White
blue Blue
orange Orange
Aber ich habe eine Notwendigkeit, um den Wert zu einem nummerierten Index optional Folgendes zurück:
Value Text
----- -----
0 Black
1 Red
2 White
3 Blue
4 Orange
Wie modifiziere ich die oben Lambda dies zu erreichen? Kann es innerhalb des Lambda als Bedingung gemacht werden oder müssen zwei Lambda-Ausdrücke innerhalb einer Bedingung if
sein?
ich nicht an all das denken hat. Es gibt mir alles, was ich brauche. – rwkiii