当我不知道在运行时将传递给该集合的对象类型时,.NET 中是否有一种方法可以对集合进行排序,并且还可以避免反射。
有什么想法吗?
最佳答案
您确实需要某种比较元素的方法。通常的方式是要求IComparable:
class MyCollection<T> where T : IComparable<T>
{
}
或者使用 IComparer,用于排序方法或构造函数:
class MyCollection<T> // where T : IComparable<T>
{
void Sort(IComparer<T> comparer)
{
if (comparer.Compare(a, b) > 0) { ... }
}
}
关于c# - 对一个我不知道它是什么类型的集合进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3346146/