C# C如何在列表框中用秒表显示时间?
我正在尝试使用随机整数测量冒泡排序的执行时间,我需要在列表框中显示这些值,但它只显示system.Diagnostics.stopwatch可能我的代码有问题,但我不知道是什么,抱歉,我是新手,我使用的代码:C# C如何在列表框中用秒表显示时间?,c#,stopwatch,C#,Stopwatch,我正在尝试使用随机整数测量冒泡排序的执行时间,我需要在列表框中显示这些值,但它只显示system.Diagnostics.stopwatch可能我的代码有问题,但我不知道是什么,抱歉,我是新手,我使用的代码: { Stopwatch tiempo = new Stopwatch(); Random NumArrRandom = new Random(); int IMPRIME_DE_NUMERO = 100
{
Stopwatch tiempo = new Stopwatch();
Random NumArrRandom = new Random();
int IMPRIME_DE_NUMERO = 1000000, IMPRIME_A_NUMERO = 10000000;
int POSICION_DE = 100, A_POSICION = 5000;
int[] Vector = Enumerable.Repeat(POSICION_DE, A_POSICION).Select(i => NumArrRandom.Next(IMPRIME_DE_NUMERO, IMPRIME_A_NUMERO)).ToArray();
int temp, n = Vector.Length;
foreach (var objeto in Vector) { listBox1.Items.Add(objeto.ToString()); }
for (int i = 0; i < n; i++)
{
tiempo.Start();
//DateTime tiempo1 = DateTime.Now;
for (int j = 0; j < i; j++)
{
if (Vector[i] < Vector[j])
{
//////////////////////////
temp = Vector[j]; //////
Vector[j] = Vector[i]; ////////
Vector[i] = temp; //////
tiempo.Stop(); ////
//DateTime tiempoStop = DateTime.Now;
/////////////////////////
}
}
}
//====================================================================
// TimeSpan total = new TimeSpan();
foreach (var objeto in Vector)enter image description here
{
listBox2.Items.Add(objeto.ToString()); listBox3.Items.Add(tiempo.ToString());
}
}
只要阅读一下如何使用秒表就可以了——这是因为你不能仅仅通过.ToString将一个对象转换成有用的东西。大多数类型不会重写.ToString方法,对象的默认实现是只返回类型名。相反,您应该查看秒表的属性,如已用时间,并从中获取所需的数据。让这成为一个教训:如果您发现自己在任何时候都在使用.ToString,请思考有没有更好的方法?因为答案几乎总是yesbtw,所以您的实现将无法正常工作。您需要将for循环中的秒表计算持久化到某个数组中,然后从中写入值。否则,您将在每次阅读如何使用秒表时编写最后一次计算-这是因为您无法通过.ToString将对象转换为有用的内容。大多数类型不会重写.ToString方法,对象的默认实现是只返回类型名。相反,您应该查看秒表的属性,如已用时间,并从中获取所需的数据。让这成为一个教训:如果您发现自己在任何时候都在使用.ToString,请思考有没有更好的方法?因为答案几乎总是yesbtw,所以您的实现将无法正常工作。您需要将for循环中的秒表计算持久化到某个数组中,然后从中写入值。否则,每次都将编写最后一次计算