在需要以下操作时存储键值对的最佳数据结构

时间:2017-09-14 00:38:14

标签: vb.net list sorting

我需要存储一个键值对列表。键值对将由多个类使用,因此理想情况下它类似于我定义的结构列表。

Public Structure Person
    Public ID As Integer
    Public Weight As Decimal
End Structure

'all use Person
    class census
    class importpeople
    class determinebestdiet
    etc
  1. 我需要按值排序
  2. 我需要删除一个人(通过Person.ID)或添加一个新的键值对(并在每次添加后重新排序)
  3. 我需要将所有值的总和相加
  4. 似乎人们经常使用词典然后黑客攻击。

1 个答案:

答案 0 :(得分:1)

您可以使用List<Person>来帮助您的工作

  1. 使用List.Sort方法:
    theList.Sort(Function(x, y) x.age.CompareTo(y.age))
    使用OrderBy扩展方法:
    theList = theList.OrderBy(Function(x) x.age).ToList()
    详细信息可以看到这篇文章:https://stackoverflow.com/a/11736001/1050927

  2. 只需从列表中删除即可致电SortOrderBy 取决于您要执行的操作,您可以OrderBySkipTake一起使用,以便在排序后获得特定的第n个人。

  3. 只需SumPersonList.Sum(Function(per) per.Weight)

  4. 我相信Dictionary也可以这样做,只是你不能重复使用Person