C#实现组合排列的方法
程序员文章站
2023-12-31 21:54:40
c#实现组合排列的方法
最近在做数据分析系统...
c#实现组合排列的方法
最近在做数据分析系统,里面涉及到组合排列的问题,查找了很多的资料,但是感觉很多资料都是比较零散的,达不到项目需求。
后来经过一段的时间的探索,终于实现了组合排列的功能。下面我就来简单说说吧。
需求描述:
要实现的功能就是字符或数字的组合排列。例如:ab 的所有组合为:ab,ba ; ab的所有不重复排列为:ab。
其实这也是彩票中常说的直选和组选。效果图如下:
功能实现
这里就不多说了,直接贴上实现代码吧。
1.窗体界面
窗体界面设计入上面的截图。
2.添加引用 在项目中,添加引用——>aotu.zhuhe.dll
3.窗体类代码
public partial class frmdemo : form { public frmdemo() { initializecomponent(); } private void frmdemo_load( sender, eventargs e) { string svn = "0b1de737-cea695ab-fc505423-bdd5f3db "; bool ret = zhuhenum.initia(svn); if (!ret) messagebox.show("注册失败!"); } private void btnnot2_click( sender, eventargs e) { string str = txtnot.text; list<string> list = zhuhenum.numnorepeassembly(str, 2); if (list == null) { messagebox.show("注册失败!"); return; } list.sort(); stringbuilder sbbuilder = new stringbuilder(); foreach (string s in list) { sbbuilder.append(s); sbbuilder.append("\r\n"); } txtshow.clear(); txtshow.text = sbbuilder.tostring(); lbcount.text = list.count.tostring(); } private void btnnot3_click( sender, eventargs e) { string str = txtnot.text; list<string> list = zhuhenum.numnorepeassembly(str, 3); if (list == null) { messagebox.show("注册失败!"); return; } list.sort(); stringbuilder sbbuilder = new stringbuilder(); foreach (string s in list) { sbbuilder.append(s); sbbuilder.append("\r\n"); } txtshow.clear(); txtshow.text = sbbuilder.tostring(); lbcount.text = list.count.tostring(); } private void btnall2_click( sender, eventargs e) { string str = txtall.text; list<string> list = zhuhenum.numgroupassembly(str, 2); if (list == null) { messagebox.show("注册失败!"); return; } list.sort(); stringbuilder sbbuilder = new stringbuilder(); foreach (string s in list) { sbbuilder.append(s); sbbuilder.append("\r\n"); } txtshow.clear(); txtshow.text = sbbuilder.tostring(); lbcount.text = list.count.tostring(); } private void btnall3_click( sender, eventargs e) { string str = txtall.text; list<string> list = zhuhenum.numgroupassembly(str, 3); if (list == null) { messagebox.show("注册失败!"); return; } list.sort(); stringbuilder sbbuilder = new stringbuilder(); foreach (string s in list) { sbbuilder.append(s); sbbuilder.append("\r\n"); } txtshow.clear(); txtshow.text = sbbuilder.tostring(); lbcount.text = list.count.tostring(); } }
4.运行效果
结束语
至此,直选和组选功能就实现了。附上源码供参考。