欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现组合排列的方法

程序员文章站 2022-03-10 14:28:43
     c#实现组合排列的方法       最近在做数据分析系统...

     c#实现组合排列的方法

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

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

     需求描述:  

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

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

        C#实现组合排列的方法 

    功能实现

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

      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.运行效果

C#实现组合排列的方法

结束语

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