C# 递归 for循环,如何能得到以下结果?

img

要得到这种结果:
a,b,c,g,w,z
d,e,f,h,m

img

class Program
{
    static void Main(string[] args)
    {
        List<string> strList = new List<string>();
        strList.Add("a,b,c");
        strList.Add("d,f");
        strList.Add("d,h,m");
        strList.Add("c,j");
        strList.Add("a,w");
        strList.Add("h,z");
        strList.Add("j,k");

        for (int i = 0; i < strList.Count-1; i++)
        {
            for(int j=i+1;j<strList.Count;j++)
            {
                string[] ss=strList[j].Split(",");
                foreach(string s in ss)
                {
                    if(strList[i].IndexOf(s)>=0)
                    {
                        strList[i]+=strList[j].Substring(1);
                        strList.RemoveAt(j);
                        i=j=0;  //从0开始重新遍历查找
                        break;
                    }
                }
            }
        }
        for (int i = 0; i < strList.Count; i++)
            Console.WriteLine(strList[i]);
    }
}

img

供参考

            List<string> strList = new List<string>();
            strList.Add("a,b,c");
            strList.Add("d,e,f");
            strList.Add("c,g");
            strList.Add("e,h");
            strList.Add("h,m");
            strList.Add("a,w,z");
            for (int i = 0; i < 2; i++)
            {
                Console.WriteLine(strList[i] + "," + strList[strList.Count - 1 - i]);
            }

运行结果

img

看不出啥规律来啊

img