Michael B mentioned a dictionary option (though I don't know what it has to do with the strategy pattern) - and I second that - it's quite easy to do it like this:
(names are shortened for brevity - Never do that on actual code!)
privateDictionary<Cases,string>_dic=newDictionary<Cases,string>(){{Cases.One,"one to three"},{Cases.Two,"one to three"},// and so on...}stringGetCorrespondingString(Casesinput){return_dic.TryGetValue(input,outvarresult)?result:thrownewInvalidEnumArgumentException();}
Since c# 7.0, you can throw an exception directly from inside a ternary condition because c# 7.0 supports throw expression.
However, the switch expression is a very powerful tool and has a potential to shorten and beautify what was once a big long mess of case: /* code */ break;
Thank you! I like the approach of using a dictionary. However this way you can not combine cases One to Three, right? In our example I would be fine with it, but If we would have many cases, I would kind of dislike it.
Yes, that will force you to write all the cases into the dictionary - and it is a shortcoming of this approach. There are advantages for both approaches, just choose the most appropriate one each time...
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Michael B mentioned a dictionary option (though I don't know what it has to do with the strategy pattern) - and I second that - it's quite easy to do it like this:
(names are shortened for brevity - Never do that on actual code!)
Since c# 7.0, you can throw an exception directly from inside a ternary condition because c# 7.0 supports throw expression.
However, the
switch
expression is a very powerful tool and has a potential to shorten and beautify what was once a big long mess ofcase: /* code */ break;
Thank you! I like the approach of using a dictionary. However this way you can not combine cases One to Three, right? In our example I would be fine with it, but If we would have many cases, I would kind of dislike it.
Yes, that will force you to write all the cases into the dictionary - and it is a shortcoming of this approach. There are advantages for both approaches, just choose the most appropriate one each time...