遇到了一个二维字符串数组遍历拼接的问题,怎么都拼接不对,求高手指教算法。
有一个二维的数组,是这样的,我是用list的形式存储的,list[i][j]
1,2
3,4
5,6
数组的行数和列数不一定,有可能比我写的例子多,有可能少,现在要求拼接出的结果是:1空格3空格5
1空格3空格6
1空格4空格5
1空格4空格6
2空格3空格5
2空格3空格6
2空格4空格5
2空格4空格6最后的结果就是要这样的一个一维数组的形式,最好也是存储在list里面。
希望高手给出循环拼接的代码,万分感谢算法循环遍历

解决方案 »

  1.   

    你这是排列组合吧,找找排列组合算法,或者用卡迪尔乘积public static void ShowResult()
    {
        string str = "X,P|黑色,红色|T,C";
        string[] temp1 = str.Split('|');
        List<string> list = new List<string>();
        foreach (string s in temp1)
        {
            if (list.Count == 0)
                list.AddRange(s.Split(','));
            else
                list = JoinPart(list, s.Split(','));
        }
        foreach (string s in list)
            Console.WriteLine(s);
    }
    public static List<string> JoinPart(List<string> part1, string[] part2)
    {
        List<string> result = new List<string>();
        foreach (string str1 in part1)
        {
            foreach (string str2 in part2)
            {
                result.Add(str1 + " " + str2);
            }
        }
        return result;
    }