日期:2014-05-17  浏览次数:20758 次

求教一个二维字符串数组的拼接问题
遇到了一个二维字符串数组遍历拼接的问题,怎么都拼接不对,求高手指教算法。
有一个二维的数组,是这样的,我是用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里面。
希望高手给出循环拼接的代码,万分感谢
算法 循环遍历

------解决方案--------------------
你这是排列组合吧,找找排列组合算法,或者用卡迪尔乘积

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;
}