首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求3个字符串的所有可能组合,该如何解决

2012-03-01 
求3个字符串的所有可能组合用C# 写的排列为3个1排 为空则显示0例如 a,b,c 显示 a00,b00,c00,a0b,a0c......

求3个字符串的所有可能组合


用C# 写的
排列为3个1排 为空则显示0

例如 a,b,c 显示 a00,b00,c00,a0b,a0c.......


[解决办法]
函数:

C# code
        private char[][] GetCharCombin(char[] chars)        {            if (chars.Length == 0) return new char[0][];            List<char[]> list = new List<char[]>();            if (chars.Length == 2)            {                list.Add(new char[] { chars[0], chars[1] });                list.Add(new char[] { chars[1], chars[0] });                list.Add(new char[] { chars[0], '0' });                list.Add(new char[] { '0', chars[0] });                list.Add(new char[] { chars[1], '0' });                list.Add(new char[] { '0', chars[1] });                list.Add(new char[] { '0', '0' });            }            else            {                for(int i=0,l=chars.Length;i<l;i++)                {                    List<char> charmap = new List<char>(chars);                    charmap.RemoveAt(i);                    char[][] charArr = GetCharCombin(charmap.ToArray());                    foreach (char[] arr in charArr)                    {                        char[] v = new char[arr.Length + 1];                        v[0] = chars[i];                        for (int i1 = 0, l1 = arr.Length; i1 < l1; i1++) { v[i1 + 1] = arr[i1]; }                        list.Add(v);                    }                }            }            return list.ToArray();        } 

热点排行