为什么此 C# 代码在此行中 IHeapifyable 之后有两个尖括号'>>'



这个方法在一个类Heap中,它在c#中创建了一个Heap数据结构这种方法在O(K log n)时间内找到第K个最小值这一行到底是做什么的

List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();
有人能用c#代码解释一下这一行吗整个代码在这里
public IHeapifyable<K, D> KthMinElement(int k)
{
if (Count is 0) throw new InvalidOperationException();
if (k <= 0 || k > Count) throw new ArgumentOutOfRangeException();
IHeapifyable<K, D> kthMin = null;
List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();
for (int i = 1; i <= k; i++)
{
if (i == k) kthMin = data[1];
temp.Add(this.Delete());
}
foreach (var node in temp) this.Insert(node.Key, node.Data);
return kthMin;
}

尖括号将泛型类型参数括起来。这里用的是List<T>,其中TIHeapifyable<K, D>,所以是List<IHeapifyable<K, D>>。这就像你要像这样嵌套方法调用:

Method1(Method2(arg));

所以你在结尾有两个右括号

尖括号是它所描述的数据类型中所包含内容的开始和结束符。

List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();
创建一个List数据类型,包含一个或多个IHeapifyable<K,D>数据类型,并将其赋值给变量temp

初始化整型列表
List<int>

你的例子是相同的,除了int,它是

IHeaplifyable<K,D>

所以如果你用IHeaplifyable代替int,你得到。

List<IHeaplifyable<K,D>>