c# - 什么数据结构类似于数据库?

标签 c# oop data-structures f#

什么是可以替代 SQL 等数据库的数据结构(如列表、数组等...)?

我希望它有尽可能多的类似数据库的特性,比如查询选择等等......

如果没有,建议结构应该是什么样子

编辑:

我认为数据表已经足够好了,感谢答案

最佳答案

最简单的此类数据结构是 F# 中的 record 或 C# 中的 class。这将代表您的 table 。表的集合将代表一个数据库。您可以使用 query expressions 进行查询(又名 Linq),并按照上面指出的那样对其进行序列化。您还可以使用 DataTable .如果您只是在寻找数据库的内存表示,您可以使用 SQLite

如果您只想访问数据库,您可以使用 F# 中的 SQLProvider 或 F# 和 C# 中的 Dapper 来实现。

这是一个包含记录列表和查询表达式的示例:

open System

type Row = {
    Id: bigint
    Name: string
    Address: string
}

let table = [
    {Id = 100I; Name = "Joe"; Address = "NYC"}
    {Id = 101I; Name = "Jane"; Address = "KC"}
    {Id = 102I; Name = "Jim"; Address = "LA"}
]

let notInNYC = 
    query {
        for user in table do
            where (user.Address <> "NYC")
            select user.Name
    }   
    |> Seq.toList
//val notInNYC : string list = ["Jane"; "Jim"]

关于c# - 什么数据结构类似于数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48602960/

相关文章:

c++ - C++ STL优先级队列使用什么堆结构?

c# - Ubuntu 上单声道的 log4net Udp appender 不记录

c# - System.Data.Spatial DbGeography.Distance 单位?

c++ - 什么时候应该在 C++ 中使用 'friend'?

algorithm - 是否可以查询 O(lg N) 范围内不同整数的数量?

c - 在 ANSI C 中表示 BER TLV 数据结构?

c# - WPF如何设计一个多窗口应用程序?

c# - 如何使用 TCP/IP 双工连接创建简单的 WCF 服务?

php - 多年来我一直在编写没有 "classes"的 PHP ......我错过了什么?

java - 为抽象类创建对象