请问我有问题,我需要在数组中找到最高的值。对于数组,人们会写名称(textbox1)和money(texbox2)。我有2个按钮第一个按钮保存到阵列,第二个用最大的钱写名字。
保存代码:
string[] name = new string[50];
int items = 0;
int[] money = new int[50];
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
Convert.ToInt32(textBox2.Text);
}
catch
{
name[items] = textBox1.Text;
money[items] = Int32.Parse(textBox2.Text);
items++;
}
}
并且对于button2需要搜索最大值并写入名称!请帮帮我
答案 0 :(得分:4)
private void button2_Click(object sender, EventArgs e)
{
int maxIndex = 0;
for(int i = 0; i < 50; i++)
{
if (money[i] > money[maxIndex])
maxIndex = i;
}
MessageBox.Show(name[maxIndex] + " has biggest value " + money[maxIndex]);
}
答案 1 :(得分:3)
要从数组中获取Max int,您可以使用IEnumerable.Max:
money.Max();
但是可能有多个名称具有相同的高钱价值,也许你需要处理这个,我认为词典将是你最好的选择
private Dictionary<string, int> Names = new Dictionary<string, int>();
private void button1_Click(object sender, EventArgs e)
{
int value = 0;
if (int.TryParse(textBox2.Text, out value))
{
if (!Names.ContainsKey(textBox1.Text))
{
Names.Add(textBox1.Text, value);
}
}
}
private void button2_Click(object sender, EventArgs e)
{
if (Names.Any())
{
int maxMoney = Names.Max(v => v.Value);
var names = Names.Where(k => k.Value.Equals(maxMoney));
foreach (var name in names)
{
// Names with the highest money value
}
}
}