C#实现组合排列的方法

时间:2022-01-26 12:18:08

     c#实现组合排列的方法

      最近在做数据分析系统,里面涉及到组合排列的问题,查找了很多的资料,但是感觉很多资料都是比较零散的,达不到项目需求。

后来经过一段的时间的探索,终于实现了组合排列的功能。下面我就来简单说说吧。

     需求描述:  

   要实现的功能就是字符或数字的组合排列。例如:ab 的所有组合为:ab,ba ;  ab的所有不重复排列为:ab。

其实这也是彩票中常说的直选和组选。效果图如下:

        C#实现组合排列的方法

    功能实现

  这里就不多说了,直接贴上实现代码吧。

      1.窗体界面

         窗体界面设计入上面的截图。

      2.添加引用    在项目中,添加引用——>aotu.zhuhe.dll  

      3.窗体类代码 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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.运行效果

C#实现组合排列的方法

结束语

            至此,直选和组选功能就实现了。附上源码供参考。