一个方法可以对所有数字类型的数组��行冒泡排序

📅 2023-09-27 🏷️ 👁️ 7 阅读

遇到一个这样的面试问题,写一个方法可以针对数字类型进行冒泡排序。

直接手写代码开撸

```csharp void NumberSort<T>(T[] items) { var temp = default(T); for (var i = 0; i < items.Length; i++) { for (var j = 0; j < items.Length && j != i; j++) { if (items[i] > items[j]) continue; temp = items[i]; items[i] = items[j]; items[j] = temp; } } } ```

看似没毛病,结果发现没法编译,因为 items[i] 和 items[j] 没法执行比较。

F12 看一下 int、float、decimal等类型的的定义,发现他们都继承于 IComparable,顾名思义" 可比较的";

接下来修改代码

```csharp void NumberSort<T>(T[] items) Where T : IComparable { var temp = default(T); for (var i = 0; i < items.Length; i++) { for (var j = 0; j < items.Length && j != i; j++) { if (items[i].CompareTo(items[j]) > 0) continue; temp = items[i]; items[i] = items[j]; items[j] = temp; } } } ```

完美运行

← redis 基础 如何判断一个动态链接库是dotnet 生成的托管 DLL →

评论 (0)

评论提交后需要审核通过才会显示

← 返回文章列表