C# 如何将带有int数组的double转换为ToString覆盖?

C# 如何将带有int数组的double转换为ToString覆盖?,c#,arrays,struct,overriding,tostring,C#,Arrays,Struct,Overriding,Tostring,struct-SSales { 私人整数【】年; 私人双[]_销售; 私人随机销售; 公共SSales(国际[]年,双[]销售年) { //yearr=可枚举的.Range(2000,10).ToArray(); _年=yearr; _sales=salesarr; 双倍最大值=50000.00; 双最小值=1000.00; salesran=newrandom(); 对于(int i=0;i

struct-SSales
{
私人整数【】年;
私人双[]_销售;
私人随机销售;
公共SSales(国际[]年,双[]销售年)
{
//yearr=可枚举的.Range(2000,10).ToArray();
_年=yearr;
_sales=salesarr;
双倍最大值=50000.00;
双最小值=1000.00;
salesran=newrandom();
对于(int i=0;i
嗨!我是一名新的C#学生,在使用结构时有点困难。当按下generatebutton时,它应该调用struct SSales,每年生成10个随机销售数字,并使用ToString覆盖将其输入列表框,如上图所示

编辑tostring覆盖的格式应如下所示:

整数[]年+“空白”+“$”+双[]销售额

我必须使用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();
        //    }
        // }
    }
private void排序按钮\u单击(对象发送者,事件参数e)
{
如果(年无线电检查)
{
内部温度=0;
对于(int i=0;isalesarr[j])
{
temp2=销售阵列[i];
salesarr[i]=salesarr[j];
salesarr[j]=temp2;
}
}
}
}
//对于(int i=0;i
结构中不应包含数组。结构应包含一年的信息:

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 */);
Random salesran=new Random();
SSales[]销售额=新SSales[10];
对于(int i=2000;i<2010;++i)
sales[i]=新的SSales(i,/*随机数,如您的*/);

现在,当您将sales array对象添加到listbox时,它们将根据结构的ToString()覆盖列出。

结构中不应包含该数组。该结构应保存一年的信息:

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 */);
Random salesran=new Random();
SSales[]销售额=新SSales[10];
对于(int i=2000;i<2010;++i)
sales[i]=新的SSales(i,/*随机数,如您的*/);


现在,当您将sales数组对象添加到列表框中时,它们将根据结构的ToString()覆盖列出。

字符串中应该是什么?您要加入什么?另外,请注意,
decimal
应该用于货币,而不是
double
。不,必须是int[]和double[]。没有“如果”或“但是”。我猜你看不到atm的图像吗?@user7115764 Decimal应该始终用于货币,请参见@user7115764屏幕截图显示了与1次销售相关的1年。你提到你每年产生10次销售。最终输出是否应该是生成的10个值的总和?使用适当的控件,这需要一个ListViewh View=Details。字符串中应该是什么?您要加入什么?另外,请注意
decimal
应该用于货币,而不是
double
。不,必须是int[]和double[]。没有“如果”或“但是”。我猜你看不到atm的图像吗?@user7115764 Decimal应该始终用于货币,请参见@user7115764屏幕截图显示了与1次销售相关的1年。你提到你每年产生10次销售。最终输出是否应该是生成的10个值的总和?使用适当的控件,这需要一个ListViewh View=Details.OP可能要求每1年进行10次销售,但仍在等待clarification@maccettura如果是这样的话,那么他们随机产生的销售额将与列出的总数不匹配。如果最大值为50000,您预计一年中至少有一个销售额总数将超过每年10个。此外最小值是1000美元,但年销售总额不到5000美元,因此这也排除了每年10个数字的理论。我只按OPs post
当按下generatebutton时,它应该调用struct SSales,每年生成10个随机销售数字,并使用ToString将其输入列表框覆盖如上图所示。
很抱歉,这只是每年一次销售。我通过使用salesarr=new double[1]而不是[10]解决了这个问题,这听起来简单多了,但之后我仍然需要使用气泡排序按年份或销售降序进行组织