PersistentCollection 2.0.12
dotnet add package PersistentCollection --version 2.0.12
NuGet\Install-Package PersistentCollection -Version 2.0.12
<PackageReference Include="PersistentCollection" Version="2.0.12" />
<PackageVersion Include="PersistentCollection" Version="2.0.12" />
<PackageReference Include="PersistentCollection" />
paket add PersistentCollection --version 2.0.12
#r "nuget: PersistentCollection, 2.0.12"
#addin nuget:?package=PersistentCollection&version=2.0.12
#tool nuget:?package=PersistentCollection&version=2.0.12
PersistentCollection
Lightweight, persistent, thread-safe, disk-based collection classes written in C# for queue, stack, dictionary, and list. All classes leverage a file to enable persistence across instantiations of the object or restarts of the software.
IMPORTANT:
- To provide persistence, the internal data structure is persisted to disk in full any time a change is made
- Thus, this library is NOT APPROPRIATE for large amounts of data or a large number of records
- It is recommended that these classes be used sparingly, when record counts are less than 1000 and total size is less than 10MB
New in v2.0.x
- Remove expiration
- Migrate existing implementation to
PersistentList
,PersistentQueue
,PersistentDictionary
, andPersistentStack
- Rename package to
PersistentCollection
Getting Started
Refer to the Test
project for a working example.
PersistentList
PersistentList
implements the interface of System.Collections.Generic.List<T>
.
using PersistentCollection;
PersistentList<string> myList = new PersistentList<string>("./list.idx");
myList.Add("foo");
myList.Add("bar");
string val = myList.Get(1);
myList.RemoveAt(1);
PersistentQueue
PersistentQueue
mimics the behavior of System.Collections.Generic.Queue<T>
.
using PersistentCollection;
PersistentQueue<string> myQueue = new PersistentQueue<string>("./queue.idx");
myQueue.Enqueue("foo");
myQueue.Enqueue("bar");
string val = myQueue.Dequeue(); // foo
PersistentStack
PersistentStack
mimics the behavior of System.Collections.Generic.Stack<T>
.
using PersistentCollection;
PersistentStack<string> myStack = new PersistentStack<string>("./stack.idx");
myStack.Push("foo");
myStack.Push("bar");
string val = myStack.Pop(); // bar
PersistentDictionary
PersistentDictionary
implements the interface of System.Collections.Generic.IDictionary<TKey, TValue>
.
using PersistentCollection;
PersistentDictionary<string, string> myDict = new PersistentDictionary<string, string>("./dict.idx");
myDict.Add("name", "Joel");
myDict.Add("hobbies", "code");
string val = myDict["name"]; // Joel
Version History
Refer to CHANGELOG.md for version history.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.8
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
-
.NETStandard 2.0
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
-
.NETStandard 2.1
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
-
net8.0
- SerializationHelper (>= 2.0.3)
- System.Text.Json (>= 9.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release