C#SortedSet如何获取元素
作者:互联网
我对此很陌生,所以请原谅我的无礼.
如果发现该项目存在,我试图在c#sortedset中编辑该项目.因此,我可以使用list.contains(value)并发现该值确实存在于列表中.但是我如何从列表中删除该项目.这就是我所拥有的.随着列表大小的增加,这变得非常慢,所以我猜肯定有比这更好的方法了.
if (list.Contains(p))
{
Person exists = list.First(person => person.Name.Equals(line[0]));
// do something here to exists
}
else
{
// just add the person to the list
}
解决方法:
您真的需要红黑树的SortedSet吗?如果不需要排序,则不应该使用它.您是否考虑过使用HashSet或Dictionary更适合(快速)按键获取项目?
在您的情况下,您可能需要使用与人名相同的键来创建Dictionary实例,即:
Dictionary<string, Person> list;
然后你就可以得到人的名字,复杂度是O(1)
if(list.ContainsKey(line[0]))
{
list[line[0]]...
}
甚至更好:
Person p;
if(list.TryGetValue(line[0], out p))
{
p...
)
标签:sortedset,c,net 来源: https://codeday.me/bug/20191122/2061027.html