从SortedSet c#中删除第一个元素

本文关键字:第一个 元素 删除 SortedSet | 更新日期: 2023-09-27 18:19:51

我有一个自定义对象的SortedSet,我想删除第一个元素,我用First()函数将其从SortedSet集合中删除。问题是它不起作用。

有什么帮助吗?

〔edit〕我的代码:

URL u = Queue.First();
Queue.Remove(u);

其中URL是一个自定义类。

从SortedSet c#中删除第一个元素

First()方法工作正常。但您将删除First()排序的项目。

SortedSet<string> set = new SortedSet<string>();
set.Add("b");
set.Add("c");
set.Add("a");
Console.WriteLine(set.First()); // Display 'A'
set.Remove(set.First()); // Remove 'A'
Console.WriteLine(set.First()); // Display 'B'

这是非常直接的,例如

SortedSet<string> set = new SortedSet<string>();
set.Add("Hi");
var f = set.First();
set.Remove(f);

First()不会删除任何内容。你不会把它从堆栈中弹出。如果你想在服用后将其移除。

 var coll =....your sorted set
 var p = coll.First();
 coll.remove(p)

使用SortedSet.Remove()查看此链接以获取更多信息

请参阅此链接以获得一些不错的排序集示例

您可以使用SortedSet<T>.Remove方法和Enumerable.First<TSource>方法

SortedSet<T>中删除指定的项。

返回序列的第一个元素。

SortedSet<string> s = new SortedSet<string>();
...
s.Remove(s.First());

不能通过调用First()来移除元素。First()Extension方法只返回对第一个元素的引用。为了删除项目,您需要调用remove。

使用控制台应用的工作示例

    static void Main(string[] args)
    {
        SortedSet<string> set = new SortedSet<string>();
        set.Add("One");
        set.Add("Two");
        set.Add("Three");
        string first = set.First();
        set.Remove(first);
        foreach (var s in set)
        {
            Console.WriteLine(s);                
        }
        Console.ReadLine();
    }