编程语言
首页 > 编程语言> > C#SortedSet如何获取元素

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