C#實(shí)現(xiàn)組合排列的方法
C#實(shí)現(xiàn)組合排列的方法
最近在做數(shù)據(jù)分析系統(tǒng),里面涉及到組合排列的問題,查找了很多的資料,但是感覺很多資料都是比較零散的,達(dá)不到項目需求。
后來經(jīng)過一段的時間的探索,終于實(shí)現(xiàn)了組合排列的功能。下面我就來簡單說說吧。
需求描述:
要實(shí)現(xiàn)的功能就是字符或數(shù)字的組合排列。例如:ab 的所有組合為:ab,ba ; ab的所有不重復(fù)排列為:ab。
其實(shí)這也是彩票中常說的直選和組選。效果圖如下:
功能實(shí)現(xiàn)
這里就不多說了,直接貼上實(shí)現(xiàn)代碼吧。
1.窗體界面
窗體界面設(shè)計入上面的截圖。
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.運(yùn)行效果

結(jié)束語
至此,直選和組選功能就實(shí)現(xiàn)了。附上demo源碼供參考。
相關(guān)文章
C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效
這篇文章主要介紹了C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效,通過簡單的C#窗口調(diào)用參數(shù)設(shè)置實(shí)現(xiàn)該退出特效功能,非常簡單實(shí)用,需要的朋友可以參考下2015-08-08
詳解C# 利用反射根據(jù)類名創(chuàng)建類的實(shí)例對象
這篇文章主要介紹了詳解C# 利用反射根據(jù)類名創(chuàng)建類的實(shí)例對象,“反射”其實(shí)就是利用程序集的元數(shù)據(jù)信息,感興趣的小伙伴們可以參考一下。2017-03-03
C#使用LibUsbDotNet實(shí)現(xiàn)USB設(shè)備檢測
C#?LibUsbDotNet是一個.NET平臺上的庫,用于訪問USB設(shè)備,它封裝了Linux下的libusb庫,LibUsbDotNet提供了一個簡單的API,開發(fā)者可以利用這個庫在C#中操作USB設(shè)備,本文介紹了C#使用LibUsbDotNet實(shí)現(xiàn)USB設(shè)備檢測,需要的朋友可以參考下2024-07-07

