为什么此 c# 代码在此行的 IHeapifyable 之后有两个 angular 括号“>>”

Why does this c# code has two angular bracket '>>' after IHeapifyable in this line

该方法在 class 堆中,它在 C# 中创建堆数据结构 此方法在 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>>();

所以这一行说的是:创建一个包含一种或多种IHeapifyable<K,D>数据类型的List数据类型,并将其赋值给变量temp

一个整数列表用这个初始化

List<int>

你的例子是一样的,除了 int 它是

IHeaplifyable<K,D>

因此,如果您将 int 替换为 IHeaplifyable,您会得到。

List<IHeaplifyable<K,D>>