C#實(shí)現(xiàn)組合排列的方法
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源碼供參考。
相關(guān)文章
C#中通過(guò)反射將枚舉元素加載到ComboBo的實(shí)現(xiàn)方法
本文主要介紹了C#中通過(guò)反射將枚舉元素加載到ComboBo的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09DevExpress GridView自動(dòng)滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了DevExpress GridView自動(dòng)滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06winform c#中子窗體關(guān)閉刷新父窗體的實(shí)例
下面小編就為大家?guī)?lái)一篇winform c#中子窗體關(guān)閉刷新父窗體的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02C#計(jì)算輸入漢字GBK編碼后十六進(jìn)制數(shù)輸出的方法
這篇文章主要介紹了C#計(jì)算輸入漢字GBK編碼后十六進(jìn)制數(shù)輸出的方法,涉及C#編碼操作相關(guān)技巧,需要的朋友可以參考下2015-04-04C#中Html.RenderPartial與Html.RenderAction的區(qū)別分析
這篇文章主要介紹了C#中Html.RenderPartial與Html.RenderAction的區(qū)別分析,需要的朋友可以參考下2014-07-07