有没有更好的方法来实现数据列表?

时间:2020-05-13 22:45:43

标签: .net database vb.net

我目前正在使用数据库来存储所需的数据,但是我不希望不得不将数据库文件与.exe分开,而我只想读取数据,所以我不需要像使用数据库一样更改数据的功能。

我如何使用数据(使用神奇宝贝)的示例:

Dex#       |        Pokémon
----------------------------
1                 Bulbasaur
2                 Ivysaur
3                 Venusaur
         ...
151               Mew

因此,我有一个与名称关联的数字,并且我希望用户看到/选择该名称,然后程序返回该数字。有没有其他方法可以将这些数据存储在程序中?

2 个答案:

答案 0 :(得分:0)

数据库用于存储其中事务完整性很重要的复杂数据结构。您描述了一个由两个值组成的简单列表,这意味着该列表是不可变的并且是通用的。

在这种情况下,“存储”数据的最简单方法是使用代码:

Public Class Pokemon 
    Public Property DexNumber as Integer
    Public Property PokemonName as String
End class

Public Function Pokemons As List(Of Pokemon)
    Return New List(Of Pokemon) From {
      New Pokemon With {.DexNumber = 1, .PokemonName=“Bulbasaur”},
      New Pokemon With {.DexNumber = 2, .PokemonName=“Ivysaur”},
      New Pokemon With {.DexNumber = 3, .PokemonName=“Venusaur”}
    }

 End Function

现在,将其存储在json或xml文件中并使其易于从列表中添加或删除项目变得不那么困难。稍加努力,就可以将其存储在SqlServer Express数据库中。进入数据库实际上并没有那么难,并且当您的结构开始变得更加复杂时,它会带您一臂之力。

答案 1 :(得分:0)

如果您要保留静态信息,则.NET中有多种方法可以执行。您想要哪一个主要是由机密性,易于开发,测试和变更管理驱动的。根据您的问题,似乎并不担心机密性。考虑其他因素,您可以

  1. 将静态类中的所有内容都写为只读属性,该属性易于开发和测试,但是变更管理却很困难。但是,变更管理需要部署。
  2. 使用轻量级的NoSQL数据库,例如LiteDB。它在Nuget中可用,并且可以作为依赖项添加到您的项目中,并且一切正常。无需单独安装。它没有任何架构,您可以根据需要添加任意数量的列。它有一个内存版本,可以简化编写单元测试的过程。变更管理不需要部署。
  3. 以Json对象格式(或xml)格式将内容存储在appsettings.json(或app.config)中,并与应用程序并排放置。因此,您可以轻松获得持久性和访问权限。变更管理不需要部署。
相关问题