C#實(shí)現(xiàn)組合排列的方法
最近在做數(shù)據(jù)分析系統(tǒng),里面涉及到組合排列的問(wèn)題,查找了很多的資料,但是感覺(jué)很多資料都是比較零散的,達(dá)不到項(xiàng)目需求。
后來(lái)經(jīng)過(guò)一段的時(shí)間的探索,終于實(shí)現(xiàn)了組合排列的功能。下面我就來(lái)簡(jiǎn)單說(shuō)說(shuō)吧。
需求描述:
要實(shí)現(xiàn)的功能就是字符或數(shù)字的組合排列。例如:ab 的所有組合為:ab,ba ; ab的所有不重復(fù)排列為:ab。
其實(shí)這也是彩票中常說(shuō)的直選和組選。效果圖如下:
        
 
功能實(shí)現(xiàn)
這里就不多說(shuō)了,直接貼上實(shí)現(xiàn)代碼吧。
1.窗體界面
窗體界面設(shè)計(jì)入上面的截圖。
2.添加引用 在項(xiàng)目中,添加引用――>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("注冊(cè)失敗!");  }  private void btnNot2_Click( sender, EventArgs e)   {       string str = txtnot.Text;       List<string> list = ZhuHeNum.NumNoRepeAssembly(str, 2);  if (list == null)     {        MessageBox.Show("注冊(cè)失敗!");      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("注冊(cè)失敗!");     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("注冊(cè)失敗!");  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("注冊(cè)失敗!");   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.運(yùn)行效果

結(jié)束語(yǔ)
至此,直選和組選功能就實(shí)現(xiàn)了。附上demo源碼供參考。
新聞熱點(diǎn)
疑難解答
圖片精選