struct SSales
{
private int[] _years;
private double[] _sales;
private Random salesran;
public SSales (int [] yeararr, double[] salesarr)
{
//yeararr = Enumerable.Range(2000, 10).ToArray();
_years = yeararr;
_sales = salesarr;
double max = 50000.00;
double min = 1000.00;
salesran = new Random();
for (int i = 0; i < yeararr.Length; i++)
{
for (int j = 0; j < salesarr.Length; j++)
{
salesarr[j] = Math.Round((salesran.NextDouble() * (max - min) + min), 2);
}
}
}
public override string ToString()
{
string itemstring; //string.join?
return itemstring;
}
嗨!我是一名新的C#学生,我在使用结构方面遇到了一些困难。当按下generate按钮时,它应该调用struct SSales并为每年生成10个随机销售数字,并使用ToString覆盖将它们输入到列表框中,如上图所示。
编辑tostring覆盖应格式为:
int []年+&#34;空白空间&#34; +&#34; $&#34; +双[]销售。
我必须使用int []和double []。
我知道我应该使用string.Join,但我无法弄清楚如何将两个不同类型的数组组合成一个字符串数组。生成数组工作正常,我测试了它,我只需要知道如何使用ToString覆盖。任何帮助将不胜感激!
编辑2我还应该注意,我也使用冒泡排序来组织这些生成,这可能会使一些答案复杂化。
private void Sortbutton_Click(object sender, EventArgs e)
{
if (yearradio.Checked)
{
int temp = 0;
for (int i = 0; i < yeararr.Length; i++)
{
for (int j = 0; j < yeararr.Length; j++)
{
if (yeararr[i] < yeararr[j])
{
temp = yeararr[i];
yeararr[i] = yeararr[j];
yeararr[j] = temp;
}
}
}
}
if (salesradio.Checked)
{
double temp2 = 0.0;
for (int i = 0; i < salesarr.Length; i++)
{
for (int j = 0; j < salesarr.Length; j++)
{
if (salesarr[i] > salesarr[j])
{
temp2 = salesarr[i];
salesarr[i] = salesarr[j];
salesarr[j] = temp2;
}
}
}
}
// for (int i = 0; i < yeararr.Length; i++)
// {
// for (int j = 0; j < salesarr.Length; j++)
// {
// listBox1.Items.Add();
// }
// }
}
答案 0 :(得分:2)
你不应该在结构中拥有数组。该结构应该包含一年的信息:
struct SSales
{
public int Year { get; private set; }
public double Sales { get; private set; } // This should REALLY be decimal type
public SSales(int year, double sales) : this()
{
Year = year;
Sales = sales;
}
public override string ToString()
{
return string.Format("{0} ${1:F2}", Year, Sales);
}
}
然后,您可以在应用程序中使用单个销售数组:
Random salesran = new Random();
SSales[] sales = new SSales[10];
for (int i = 2000;i < 2010;++i)
sales[i] = new SSales(i, /* random number like you have */);
现在,当您将销售数组对象添加到列表框时,它们将根据您的结构的ToString()覆盖进行列出。