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

时间:2013-06-24 14:03:12

标签: c# sortedset

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

任何帮助?

[edit]我的代码

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

其中URL是自定义类

7 个答案:

答案 0 :(得分:9)

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'

答案 1 :(得分:8)

这很简单,例如。

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

答案 2 :(得分:1)

您可以使用SortedSet<T>.Remove MethodEnumerable.First<TSource> Method

  

SortedSet<T>

中删除指定的项目

  

返回序列的第一个元素。

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

答案 3 :(得分:1)

First()不删除任何内容。你没有从堆栈中弹出它。如果你想在它拿走后将其删除。

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

答案 4 :(得分:1)

答案 5 :(得分:0)

您无法通过调用First()来删除元素。 First()Extension方法只返回对第一个元素的引用。要删除项目,您需要致电Remove

答案 6 :(得分:0)

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

    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();
    }