Вы можете проявить творческий подход с помощью Func<string, string>[]
, например:
Func<string, string>[] cases = new Func<string, string>[]
{
x => x.EndsWith("A") ? "Managua" : null,
x => x.EndsWith("B") ? "Masaya" : null,
x => x.EndsWith("C") ? "Leon" : null,
x => "N/A",
};
Func<string, string> @switch = cases.Aggregate((x, y) => z => x(z) ?? y(z));
string result = @switch(Pac.Sku);
Я проверил это на примере ввода, который соответствует каждому случаю, и он прекрасно работает.
OneСущественным преимуществом этого подхода является то, что вы можете создать Func<string, string>[]
во время выполнения.Прекрасно подходит для создания настраиваемых решений.
Вы также не ограничены просто использованием EndsWith
- можно использовать любое условие, которое соответствует цели.