比如说是十个数据要从中随机抽其四个,怎么做,最好有代码,谢谢
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data;
namespace WindowsApplication1 { /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; Random r; ArrayList a; int[] f; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null;
public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent();
// // TOD 在 InitializeComponent 调用后添加任何构造函数代码 // }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); }
#region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(104, 168); this.button1.Name = "button1"; this.button1.TabIndex = 0; this.button1.Text = "获取"; this.button1.Click += new System.EventHandler(this.button1_Click); // // label1 // this.label1.Location = new System.Drawing.Point(32, 24); this.label1.Name = "label1"; this.label1.TabIndex = 1; // // label2 // this.label2.Location = new System.Drawing.Point(176, 16); this.label2.Name = "label2"; this.label2.TabIndex = 2; // // label3 // this.label3.Location = new System.Drawing.Point(24, 72); this.label3.Name = "label3"; this.label3.TabIndex = 3; // // label4 // this.label4.Location = new System.Drawing.Point(176, 72); this.label4.Name = "label4"; this.label4.TabIndex = 4; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.Add(this.label4); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false);
} #endregion
/// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); }
private void button1_Click(object sender, System.EventArgs e) { //每次单击获取按钮时把C重置为4 int c=4; //初始化Random r=new Random(); //初始化集合实例盛放随机数 a=new ArrayList(); //for循环获取四个不同的值并添加到集合a中 for(int b=0;b<c;b++) { //声明变量d int d=0; //生成一个随机数并付给d d=r.Next(0,10); //判断集合a中是否已经包含新生成的d这个随机数如果包含把c加1使得集合a能添加4次 //如果不包含把新生成的随机数d添加到集合a中 if(a.Contains(d)) { c++; } else { a.Add(d); } } //调用获取a中的随机数的方法 this.getValues(a); //每单击一次按钮把集合a清空一次 this.a.Clear(); //声明一个十个数的数组 int[] i={1,4,5,7,2,3,6,9,0,8}; //把从数组里获得的不同的四个数显示在标签上 this.label1.Text=i[f[0]].ToString(); this.label2.Text=i[f[1]].ToString(); this.label3.Text=i[f[2]].ToString(); this.label4.Text=i[f[3]].ToString();
} public void getValues( IEnumerable myList ) { f=new int[4]; System.Collections.IEnumerator myEnumerator = myList.GetEnumerator(); for(int g=0;g<4;g++) { myEnumerator.MoveNext(); f[g]=Convert.ToInt32(myEnumerator.Current); } myEnumerator.Reset(); }
} } 这是一个随机获取数组里4个不同数的程序可能有点麻。 水平有限,愿见谅!