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

結(jié)束語
至此,直選和組選功能就實現(xiàn)了。附上demo源碼供參考。
相關文章
C#中通過反射將枚舉元素加載到ComboBo的實現(xiàn)方法
本文主要介紹了C#中通過反射將枚舉元素加載到ComboBo的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
C#中Html.RenderPartial與Html.RenderAction的區(qū)別分析
這篇文章主要介紹了C#中Html.RenderPartial與Html.RenderAction的區(qū)別分析,需要的朋友可以參考下2014-07-07

