我有SortedSet
个自定义对象,我想删除第一个元素,我从First()
集合中使用SortedSet
函数将其删除。问题是不起作用,我不知道为什么。
任何帮助?
[edit]我的代码
URL u = Queue.First(); Queue.Remove(U);
其中URL是自定义类
答案 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
Method和Enumerable.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)
使用SortedSet.Remove()参见this link for more information
答案 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();
}