C#如何使函数能够在不重载的情况下对字符串或整数进行排序?

C#如何使函数能够在不重载的情况下对字符串或整数进行排序?,c#,sorting,oop,overloading,comparator,C#,Sorting,Oop,Overloading,Comparator,正如标题所说,我必须编写一些代码来对数组/字符串列表或整数进行排序。我的OOP知识真的很生疏,因为我很久没有使用C#/Java了 有没有办法让我只需要编写一个函数就可以了,这样我就不必重载这个函数了 (例如InsertSort(int[]arr)和InsertSort(string[]arr)) 我听说了一些关于使用IComparable或Comparator的事情,我看了一下这两个工具的文档,但在我看来,它们更像是用于对象的 谢谢你的帮助 通用方法应该是您的朋友。泛型允许您将方法中使用的类型的

正如标题所说,我必须编写一些代码来对数组/字符串列表或整数进行排序。我的OOP知识真的很生疏,因为我很久没有使用C#/Java了

有没有办法让我只需要编写一个函数就可以了,这样我就不必重载这个函数了

(例如InsertSort(int[]arr)和InsertSort(string[]arr))

我听说了一些关于使用IComparable或Comparator的事情,我看了一下这两个工具的文档,但在我看来,它们更像是用于对象的


谢谢你的帮助

通用方法应该是您的朋友。泛型允许您将方法中使用的类型的说明推迟到程序中实际使用。你可以阅读更多关于泛型的文章


泛型方法应该是您的朋友。泛型允许您将方法中使用的类型的说明推迟到程序中实际使用。你可以阅读更多关于泛型的文章


首先,您可以尝试类似于此方法的方法

public static IEnumerable<T> InsertSort<T>(IEnumerable<T> tmp)
{
  //... Perform sorting
  //... Return the sorted results as IEnumerable 
}
公共静态IEnumerable InsertSort(IEnumerable tmp)
{
//…执行排序
//…将排序后的结果作为IEnumerable返回
}
您将能够发送所选类型的列表或数组

用法:

List<int> listA = new List<int>();
var sortedListA = InsertSort(listA);

string[] arrA = new string[5];
var sortedArrayA = InsertSort(arrA);
List listA=新列表();
var sortedListA=插入排序(listA);
字符串[]arrA=新字符串[5];
var sortedaraya=插入排序(arrA);

要开始,您可以尝试类似此方法的方法

public static IEnumerable<T> InsertSort<T>(IEnumerable<T> tmp)
{
  //... Perform sorting
  //... Return the sorted results as IEnumerable 
}
公共静态IEnumerable InsertSort(IEnumerable tmp)
{
//…执行排序
//…将排序后的结果作为IEnumerable返回
}
您将能够发送所选类型的列表或数组

用法:

List<int> listA = new List<int>();
var sortedListA = InsertSort(listA);

string[] arrA = new string[5];
var sortedArrayA = InsertSort(arrA);
List listA=新列表();
var sortedListA=插入排序(listA);
字符串[]arrA=新字符串[5];
var sortedaraya=插入排序(arrA);

有一个
动态的
泛型的谷歌
。有一个
动态的
泛型的谷歌