C#我必须在标签上应用10个变量
在这个赋值中,我必须将10个变量应用到文本框中的标签中,但是当我输入变量时,它会从文本框中输入10个相同的值,我对这个主题感到困惑。下面是它的代码:C#我必须在标签上应用10个变量,c#,C#,在这个赋值中,我必须将10个变量应用到文本框中的标签中,但是当我输入变量时,它会从文本框中输入10个相同的值,我对这个主题感到困惑。下面是它的代码: private void btnNumbers_Click(object sender, EventArgs e) { int[] numbers = new int[10]; for (int i = 0; i < numbers.Length; i++) {
private void btnNumbers_Click(object sender, EventArgs e)
{
int[] numbers = new int[10];
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = Convert.ToInt32(txtNumbers.Text);
}
SmallestAndLargest(numbers);
}
private void SmallestAndLargest(int[] numbers)
{
Array.Sort(numbers);
int x;
for (x = 0; x < numbers.Length; ++x)
lblSorted.Text += String.Format(" {0} ", numbers[x]);
lblSmallest.Text = String.Format("Smallest Number Entered: {0} ", numbers[0]);
lblLargest.Text = String.Format("Largest Number Entered: {0} ", numbers[numbers.Length - 1]);
}
private void btnNumbers\u单击(对象发送者,事件参数e)
{
整数[]个数=新整数[10];
for(int i=0;i
每次从txtNumbers.Text属性指定相同的值时
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = Convert.ToInt32(txtNumbers.Text);
}
for(int i=0;i
如果要在texbox中输入大量值,请尝试:
string[] words = txtNumbers.Text.Split(' ');
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = Convert.ToInt32(words[i]);
}
string[]words=txtNumbers.Text.Split(“”);
for(int i=0;i
您需要拆分输入值。比如说:
private void btnNumbers_Click(object sender, EventArgs e)
{
var numbers = txtNumbers.Text.Split(' ');
int[] convertedItems = Array.ConvertAll<string, int>(numbers, int.Parse);
SmallestAndLargest(convertedItems );
}
private void btnNumbers\u单击(对象发送者,事件参数e)
{
var number=txtNumbers.Text.Split(“”);
int[]convertedItems=Array.ConvertAll(数字,int.Parse);
SmallestAndLargest(convertedItems);
}
因此,如果您输入如下值:
private void btnNumbers_Click(object sender, EventArgs e)
{
var numbers = txtNumbers.Text.Split(' ');
int[] convertedItems = Array.ConvertAll<string, int>(numbers, int.Parse);
SmallestAndLargest(convertedItems );
}
12357910
您的numbers
数组将分别填充一个数字。Split(“”)
将根据找到空格的位置对字符串进行拆分。如果它们以不同的方式输入,则需要为Split()
使用不同的分隔符。你可以在网上了解更多
然后在另一种方法中,您可以遍历数组并找到最小值和最大值。int[]numbers=new int[10];
int[] numbers = new int[10];
int counter = 0;
private void btnNumbers_Click(object sender, EventArgs e)
{
numbers[counter] = Convert.ToInt32(txtNumbers.Text);
counter++;
SmallestAndLargest(numbers);
}
private void SmallestAndLargest(int[] numbers)
{
Array.Sort(numbers);
int x;
for (x = 0; x < numbers.Length; ++x)
lblSorted.Text += String.Format(" {0} ", numbers[x]);
lblSmallest.Text = String.Format("Smallest Number Entered: {0} ", numbers[0]);
lblLargest.Text = String.Format("Largest Number Entered: {0} ", numbers[numbers.Length - 1]);
}
int计数器=0;
私有无效btnNumbers\u单击(对象发送者,事件参数e)
{
数字[计数器]=转换为32(txtNumbers.Text);
计数器++;
小型和大型(数字);
}
私有void SmallestAndLargest(int[]编号)
{
数组。排序(数字);
int x;
对于(x=0;x
这不是最好的方法,但应该有效。关键是在clickmethod之外声明数组,因为它一离开方法的作用域就消失了。但是要注意-如果超过10个条目,这将引发异常。我将把它作为一种锻炼
编辑:我认为OP实现这一点的方式与目前提供的答案略有不同。我的解释是,OP会在文本框中键入一个整数,然后单击一个按钮,然后将其添加到数组中,重复10次
编辑2:因为我认为这是你想要的方式,你也应该改变
for (x = 0; x < numbers.Length; ++x)
lblSorted.Text += String.Format(" {0} ", numbers[x]);
for(x=0;x
到
lblSorted.Text=String.Empty;
对于(x=0;x
这将确保标签文本已更新,而不是追加
编辑3:因为我今天心情很好,这是我制作的测试表格,它可以按预期工作
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<int> numbers = new List<int>();
private void btnNumbers_Click(object sender, EventArgs e)
{
int x;
if (!Int32.TryParse(txtNumbers.Text, out x)) return;
numbers.Add(x);
SmallestAndLargest(numbers.ToArray());
}
private void SmallestAndLargest(int[] numbers)
{
Array.Sort(numbers);
int x;
lblSorted.Text = String.Empty;
for (x = 0; x < numbers.Length; ++x)
lblSorted.Text += String.Format(" {0} ", numbers[x]);
lblSmallest.Text = String.Format("Smallest Number Entered: {0} ", numbers[0]);
lblLargest.Text = String.Format("Largest Number Entered: {0} ", numbers[numbers.Length - 1]);
}
}
}
名称空间测试
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
列表编号=新列表();
私有无效btnNumbers\u单击(对象发送者,事件参数e)
{
int x;
如果(!Int32.TryParse(txtNumbers.Text,out x))返回;
增加(x);
SmallestAndLargest(number.ToArray());
}
私有void SmallestAndLargest(int[]编号)
{
数组。排序(数字);
int x;
lblSorted.Text=String.Empty;
对于(x=0;x
看看这个!我将数组更改为一个列表
,并做了一些其他小更改,但它应该可以完成您试图归档的任务
public List<int> Numbers { get; set; }
private void btnNumbers_Click(object sender, EventArgs e)
{
var currentVal = 0;
if (Int32.TryParse(txtNumbers.Text, out currentVal))
Numbers.Add(currentVal);
SmallestAndLargest();
}
private void SmallestAndLargest()
{
Numbers.Sort(); //Sorts
var max = 0;
foreach(var x in Numbers)
{
lblSorted.Text += String.Format(" {0} ", x);
max = x; //As List is sorted the current x is always the maximum value
}
lblSmallest.Text = String.Format("Smallest Number Entered: {0} ", Numbers.ElementAt(0));
lblLargest.Text = String.Format("Largest Number Entered: {0} ", max);
}
公共列表编号{get;set;}
私有无效btnNumbers\u单击(对象发送者,事件参数e)
{
var-currentVal=0;
if(Int32.TryParse(txtNumbers.Text,out currentVal))
添加(currentVal);
SmallestAndLargest();
}
私有void SmallestAndLargest()
{
Numbers.Sort();//排序
var max=0;
foreach(数值中的变量x)
{
lblSorted.Text+=String.Format(“{0}”,x);
max=x;//列表排序时,当前x始终是最大值
}
lblSmallest.Text=String.Format(“输入的最小数字:{0}”,Numbers.ElementAt(0));
lblLargest.Text=String.Format(“输入的最大数字:{0}”,max);
}
我仍然很困惑如何将文本框中的变量输入到标签中,而不让它输入10个相同的值。每次从文本框中转换相同的值时。也许你可以说你想要什么