I am trying to include an IF within my LET in LINQ but i can’t get it to work, it seems to work for the ternary operator, but this is TRUE or FALSE and i need to have more than 2 options.
I think this explains it well
Basically i have a select which selects items using joins from a DB. Then the i get the status for each record but i have to make a join on separate tables depending on the type from products.type
var tst = from p in products join i in info on p.id equals i.pid
// if p.type = "home" then ...
let status = from s in homestatus
select new { status = s.status }
// if p.type ="offshore" then
let status = from s in offshorestatus
select new { status = s.status }
// if p.type ="internal" then
let status = from s in internalestatus
select new { status = s.status }
select new {
name = p.name,
status = status.StatusText
}
Anybody have any ideas how to do a standard IF so i can select which STATUS (let) i wish to execute.
Thanks in advance
You can do that with the conditional operator (1)
If you are not using the status for anything else than the StatusText you could also do it like this
(1) A ternary operator is any operator that takes three arguments, of which there at present is only one in C# called the conditional operator