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

