gpt4 book ai didi

c# - 不同的数组类型作为方法的参数

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:37 26 4
gpt4 key购买 nike

我有一个问题。我想实现插入排序,但是在不同类型的数组上——int、string 和 double 但我不知道如何在方法中获取不同类型的参数。这是一些代码:

private static string InsertionSort(int[] array)
{

Stopwatch stopwatch = new Stopwatch();
int index, i, j;
stopwatch.Start();
for (i = 1; i < array.Length; i++)
{
index = array[i];
j = i;
while ((j > 0) && (array[j - 1] > index))
{
array[j] = array[j - 1];
j = j - 1;
}
array[j] = index;
}
stopwatch.Stop();
return stopwatch.Elapsed.ToString();
}

我尝试使用 InsertionSort(dynamic[] array) 但它仍然不起作用。

最佳答案

您可以像其他人提到的那样使用泛型,但要能够比较项目,您需要添加类型实现 IComparable 的约束。您还需要更改代码以使用 CompareTo 而不是 > 运算符。

private static string InsertionSort<T>(T[] array) where T : IComparable<T>
{
Stopwatch stopwatch = new Stopwatch();
int i, j;
T index;
stopwatch.Start();
for (i = 1; i < array.Length; i++)
{
index = array[i];
j = i;
while ((j > 0) && (array[j - 1].CompareTo(index) > 0))
{
array[j] = array[j - 1];
j = j - 1;
}
array[j] = index;
}
stopwatch.Stop();
return stopwatch.Elapsed.ToString();
}

关于c# - 不同的数组类型作为方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23988783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com