class Program { static void Main(string[] args) { string s = "zzq2"; string temp = string.Empty; Matcher.matcher .On("zzq1", x => temp = x) .On("zzq2", x => temp = x + "123") .Excute(s); Console.WriteLine(temp); Console.Read(); } } public class Matcher { public static Matcher matcher { get { return new Matcher(); } } private static Dictionary<string, Action<string>> dic = new Dictionary<string, Action<string>>(); public Matcher On(string str, Action<string> action) { dic.Add(str, action); return this; } public void Excute(string str) { var sourceDic = dic.Where(x => x.Key.Contains(str)).FirstOrDefault(); sourceDic.Value(str); } }