c# 数组穷举?

现在我有一个string数组:{"a","b","c","d","e"}我想要穷举所有组合,比如:ab,c,d,eab,cd,eab,ce,dab,de,ca,b,c,d... 现在我有一个string数组:
{"a","b","c","d","e"}
我想要穷举所有组合,比如:
ab,c,d,e
ab,cd,e
ab,ce,d
ab,de,c
a,b,c,d,e等等

依次每个维度的第一个元素数量,一维=5(包含上面全部),二维=4(ab,c,d,e),三维=2(ab)
不能出现重复,比如:
ab,cd,e
dc,ba,e
实际中数组长度不固定,有什么解决办法吗?
展开
 我来答
周华盛花生
2020-07-07 · TA获得超过120个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:67.8万
展开全部
//算法
static List<string> GetStr(string qz,List<string> stuu)
{
List<string> lsResult = new List<string>();
StringBuilder bresult = new StringBuilder();
for (int i = 0; i < stuu.Count; i++)
{
bresult = new StringBuilder();
bresult.Append(qz);
for (int r = 0; r <= i; r++)
{
bresult.Append(stuu[r]); //获得前缀
}
if(i<stuu.Count-1)
bresult.Append(",");
lsResult.AddRange(GetStr(bresult.ToString(), stuu.Skip(i + 1).ToList()));
bresult.Append(string.Join(",", stuu.Skip(i + 1).ToArray()));
lsResult.Add(bresult.ToString());

}
return lsResult;
}
//方法外调用
var stuu = new List<string>{ "a", "b", "c", "d", "e","F" };
var result = GetStr("", stuu).GroupBy(t=>t).Select(t=>t.Key).ToList();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
品高狙9
2020-07-06
知道答主
回答量:25
采纳率:0%
帮助的人:1.4万
展开全部
等 依次每个维度的第一个元素数量,一维=5(包
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2020-07-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7875万
展开全部
组合和排列的代码很容易找到
但是你这个ab这种两个元素连起来的是什么鬼,你没说清楚需求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿_禁
2020-07-06 · TA获得超过122个赞
知道小有建树答主
回答量:430
采纳率:0%
帮助的人:97.5万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式