C#winform的大佬们帮一下 如何获取两个特定字符之间的string 这两个特定值出现多次

例如:
string a="一二三嗯嗯嗯额恩五六七二三四啊啊啊啊啊五六七八";
截取三和五之间的string,三和五出现了两次
两次之间的值都要

        string a = "一二三嗯嗯嗯额恩五六七二三四啊啊啊啊啊五六七八";
        string result = "";
        if (a.IndexOf('三') > -1)
        {
            string[] str = a.Split('三');
            for (int k = 0; k < str.Length; k++)
            {
                if (str[k].IndexOf('五') > -1)
                {
                    result += str[k].Substring(0, str[k].IndexOf('五'))+",";
                }
            }
        }
        if (!string.IsNullOrEmpty(result))
        {
            result = result.Substring(0, result.Length - 1);
        }
        public static void Main(string[] args)
        {
            substring("一二三嗯嗯嗯额恩五六七二三四啊啊啊啊啊五六七八", "三", "五");
        }
public static List<string> substring(string a,string first,string last)
        {
            List<string> strList = new List<string>();
            int star = a.IndexOf(first);
            int stop = a.IndexOf(last);
            while (star > -1 && stop > -1)
            {
                if (stop > star)
                {
                    string str = a.Substring(star + 1, stop - star - 1);
                    a = a.Remove(star, stop - star + 1);
                    strList.Add(str);
                }
                else
                {
                    a = a.Remove(stop, 1);
                }
                star = a.IndexOf(first);
                stop = a.IndexOf(last);
            }

            return strList;
        }