首页 > 编程 > C# > 正文

C#实现组合排列的方法

2019-10-29 21:19:53
字体:
来源:转载
供稿:网友

     C#实现组合排列的方法

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

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

     需求描述:  

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

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

        C#实现组合排列,C#,如何实现组合排列,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#实现组合排列,C#,如何实现组合排列,C#组合排列的实现实例

结束语

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


注:相关教程知识阅读请移步到c#教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表