using System.Collections.Generic;
public static void Main()
List<InvBase> strategies = new List<InvBase>{new GentInvRepo(), new EssarInvRepo()};
var strategy = strategies.FirstOrDefault(p => p.Brand == input);
Console.WriteLine(strategy.Execute(""));
public abstract class InvBase
public abstract Brand Brand
public abstract string Execute(string brand);
public class GentInvRepo : InvBase
public override Brand Brand => Brand.Gent;
public override string Execute(string brand)
return "this is gent object";
public class EssarInvRepo : InvBase
public override Brand Brand => Brand.Essar;
public override string Execute(string brand)
return "this is essar object";