好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

结束语

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

dy("nrwz");

查看更多关于C#实现组合排列的方法的详细内容...

  阅读:43次