Schlüsselwert-db-csharp
Leichtes Paket zum schnellen und einfachen Verwalten, Laden, Aktualisieren und Speichern von Datenbanken vom Typ Schlüsselwert
Die Beispielanwendungsfälle dieses Pakets sind das Laden von Konfigurationsdateien, Sprachdateien und Einstellungseinstellungen in einer Anwendung. Weitere Anwendungsfälle finden Sie hier.
Das Paket führt keine Eingabe- und Ausgabevorgänge durch, da es mehrere Möglichkeiten zum Lesen und Schreiben in Dateien gibt und die Methoden ihre Stärken und Schwächen haben. Daher muss der Entwickler einen effizienten Weg zum lokalen Laden und Speichern finden.
Der Paketname ist KeyValueDB.
Verwenden des Paket-Managers:
Install-Package KeyValueDB -Version 1.2.0
Verwenden der .NET-CLI:
dotnet add package KeyValueDB --version 1.2.0
Verwenden der Paketreferenz:
< PackageReference Include = " KeyValueDB " Version = " 1.2.0 " />
Verwenden der Paket-CLI:
paket add KeyValueDB --version 1.2.0
Das folgende Beispiel lädt, aktualisiert, liest und entfernt ein einfaches Schlüsselwertobjekt
using System ;
using Io . Github . Thecarisma ;
namespace Sample
{
class Test
{
public static void Main ( string [ ] args )
{
//initialize the key-value
KeyValueDB keyValueDB = new KeyValueDB ( "Greet=Hello World,Project=KeyValueDB" , true , '=' , ',' , false ) ;
//get an object
Console . WriteLine ( keyValueDB . Get ( "Greet" ) ) ;
//remove an object
keyValueDB . Remove ( "Greet" ) ;
//add an object
keyValueDB . Add ( "What" , "i don't know what to write here" ) ;
//print all the objects
foreach ( var kvo in keyValueDB ) {
Console . WriteLine ( kvo ) ;
}
}
}
}
kvp - Key Value Pair
kvdb - Key value Database
pss - Possibly
kvo - Key Value Object
Als Schlüssel und Wert des kvo wird nur der String-Typ verwendet. Ein kvo kann verwendet werden, um den Wert für einen Schlüssel zu ersetzen oder festzulegen.
Mit dem Paket können Sie eine vorhandene Schlüsselwertdatenbank aktualisieren und erstellen. Diese Bibliothek liest die Datenbank nicht aus einer Datei, was bedeutet, dass Sie einen Weg finden müssen, eine Zeichenfolge aus der Datei zu lesen.
Erstellen Sie eine neue keyValueDB. Das Standardtrennzeichen zwischen Schlüssel und Wert ist =
und das Trennzeichen zwischen dem KVP ist n
(Neue Zeile).
KeyValueDB keyValueDB = new KeyValueDB ( ) ;
Zum Laden vorhandener KeyValueDB
KeyValueDB keyValueDB = new KeyValueDB (
"Greet=Hello World,Project=KeyValueDB" , //pss read string from file
true , //case sensitive is true
'=' , //the seperator from key and value
',' , //the delimeter for the key-value-pair
false //error tolerance if true no exception is thrown
) ;
Der einzige akzeptierte Typ, der eingefügt werden kann, ist ein gültiges KeyValueObject
und String
. Mit der Methode Add
kann ein neues KVP zum Objekt hinzugefügt werden.
Fügen Sie einen KVP mit Schlüssel und Wert hinzu
keyValueDB . Add ( "Greet" , "Hello World" ) ;
Fügen Sie einen KVP mithilfe der KeyValueObject
-Klasse hinzu.
KeyValueObject keyValueObject = new KeyValueObject ( "Greet" , "Hello World" ) ;
keyValueDB . Add ( keyValueObject ) ;
Es gibt verschiedene Möglichkeiten, einen Wert aus dem kvdb-Objekt zu finden und abzurufen. Der Wert oder das KeyValueObject kann mit den folgenden Methoden abgerufen werden
Sie können den kvo entweder über den Schlüssel oder den Index abrufen. Wenn das entsprechende kvo nicht gefunden wird, wird ein leeres kvo zur Datenbank hinzugefügt und dann zurückgegeben, jedoch nicht in dem Fall, wenn es mit dem ganzzahligen Index angefordert wird. Wenn ein Fallback-KVO als zweiter Parameter gesendet wird, wird der zweite Fallback-Parameter zur KVDB hinzugefügt und dann zurückgegeben, wenn der Anforderungs-KVO nicht gefunden wird.
Holen Sie sich den kvo mithilfe des ganzzahligen Index
keyValueDB . GetKeyValueObject ( 0 ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Holen Sie sich den KVO mit diesem Schlüssel
keyValueDB . GetKeyValueObject ( "Greet" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Holen Sie sich den KVO mithilfe des Schlüssels mit Fallback-KVO
KeyValueObject keyValueObject = new KeyValueObject ( "Name" , "Adewale Azeez" ) ;
keyValueDB . GetKeyValueObject ( "Name" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Name,Value=Adewale Azeez
Erhalten Sie ein KVO, indem Sie die KVDB auf das KVO-Objekt überprüfen, das einen Teil des Schlüssels enthält. Wenn ein Fallback-KVO als zweiter Parameter gesendet wird, wird der zweite Fallback-Parameter zur KVDB hinzugefügt und dann zurückgegeben, wenn der Anforderungs-KVO nicht gefunden wird.
Holen Sie sich ein ähnliches KVO mit diesem Schlüsselteil
keyValueDB . GetLikeKeyValueObject ( "eet" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Erhalten Sie ein ähnliches KVO, indem Sie den Schlüsselteil mit Fallback-KVO verwenden
KeyValueObject keyValueObject = new KeyValueObject ( "Name" , "Adewale Azeez" ) ;
keyValueDB . getKeyValueObject ( "Nam" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Name,Value=Adewale Azeez
Sie können einen KVDB-Wert entweder über den Schlüssel oder den Index abrufen. Wenn der entsprechende Wert nicht gefunden wird, wird der Datenbank ein leerer String hinzugefügt und dann zurückgegeben, jedoch nicht in dem Fall, wenn mit dem Integer-Index angefordert wird.
Wenn ein Fallback-KVO als zweiter Parameter gesendet wird, wird der zweite Fallback-Parameter zur KVDB hinzugefügt, wenn der Anforderungsschlüssel nicht gefunden wird, und dann wird der Wert zurückgegeben. Wenn als zweiter Wert ein Stringwert gesendet wird, wird dieser zurückgegeben, wenn der Schlüssel nicht in der KVDB gefunden wird.
Rufen Sie einen Wert mithilfe des Ganzzahlindex ab
keyValueDB . Get ( 0 ) ;
//"Hello World"
Rufen Sie den Wert mit dem Schlüssel ab
keyValueDB . Get ( "Greet" ) ;
//"Hello World"
Rufen Sie den kvo mit dem Schlüssel mit Fallback-Wert ab
keyValueDB . Get ( "Licence" , "The MIT Licence" ) ;
//"The MIT Licence"
Holen Sie sich den KVO mithilfe des Schlüssels mit Fallback-KVO
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . Get ( "Name" , keyValueObject ) ;
//"The MIT Licence"
Erhalten Sie einen Wert, indem Sie die kvdb auf das kvo-Objekt überprüfen, das einen Teil des Schlüssels enthält.
Wenn ein Fallback-KVO als zweiter Parameter gesendet wird, wird der zweite Fallback-Parameter zur KVDB hinzugefügt, wenn der Anforderungsschlüssel nicht gefunden wird, und dann wird der Wert zurückgegeben.
Ermitteln Sie mithilfe des Schlüsselteils einen Wert
keyValueDB . GetLike ( "eet" ) ;
//"Hello World"
Erhalten Sie einen Wert mithilfe des Schlüsselteils mit Fallback-kvo
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . GetLike ( "Li" , keyValueObject ) ;
//"The MIT Licence"
Es gibt verschiedene Möglichkeiten, einen KVP in der KVDB zu aktualisieren. Der Wert kann direkt geändert oder auf ein neues KeyValueObject gesetzt werden. Wenn Sie versuchen, mit diesem Schlüssel ein KVO festzulegen, das nicht in der KVDB vorhanden ist, wird es zur KVDB hinzugefügt.
Die Set
-Methode wird verwendet, um den Wert des kvo mithilfe des Index des kvo oder eines kvo-Schlüssels zu ändern.
Legen Sie mithilfe des Index einen kvo-Wert fest
keyValueDB . Set ( 0 , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
Stellen Sie mit der Taste einen kvo-Wert ein
keyValueDB . Set ( "Greet" , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
Ändern Sie ein KeyValueObject in der kvdb vollständig, indem Sie entweder den Index oder den Schlüssel verwenden. Der KVO wird vollständig ersetzt, was bedeutet, dass sich eindeutige Felder wie der Hashcode des KVO ändern. Wenn der KVO mit dieser Taste festgelegt wird und der entsprechende KVO nicht vorhanden ist, wird er zur KVDB hinzugefügt. Beachten Sie, dass diese Methode den kvo vollständig ändert, sodass sie zum Ersetzen eines kvo verwendet werden kann.
Legen Sie einen kvo mithilfe des Index fest
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . SetKeyValueObject ( 0 , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Licence,Value=The MIT Licence
Stellen Sie mit der Taste einen kvo-Wert ein
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . SetKeyValueObject ( "Greet" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Licence,Value=The MIT Licence
Ein neuer KVP kann durch Aufrufen der Add
-Methode eingefügt werden. Der KVP kann mithilfe seines Schlüssels und Werts oder durch direktes Hinzufügen des KeyValueObject zur KVDB hinzugefügt werden.
Fügen Sie mithilfe des Schlüssels und des Werts ein neues KVP hinzu
keyValueDB . Add ( "Key" , "This is the value" ) ;
Fügen Sie einen neuen KVP mit einem neuen KeyValueObject hinzu
KeyValueObject keyValueObject = new KeyValueObject ( "Key" , "This is the value" ) ;
keyValueDB . Add ( keyValueObject ) ;
Entfernen Sie einen KVP vollständig aus der KVDB, indem Sie einen der Schlüssel des Integer-Index verwenden. Der entfernte KVP wird von der Methode zurückgegeben. Wenn der Index nicht außerhalb der Grenzen existiert, tritt ein Fehler auf und wenn kein KVO mit dem Schlüssel vorhanden ist, wird nichts unternommen, sondern es wird ein leerer KVO zurückgegeben.
Entfernen Sie einen KVP mithilfe eines Ganzzahlindex
keyValueDB . Remove ( 0 ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Entfernen Sie ein KVP mit dieser Taste
keyValueDB . Remove ( "Greet" ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Ermitteln Sie die Größe des kvo in der kvdb.
keyValueDB . Size ( ) ;
//4
Entfernen Sie alle Elemente und kvo aus der kvdb
keyValueDB . Clear ( ) ;
//keyValueDB.Size() = 0
Überprüfen Sie, ob die KVDB KVO enthält.
keyValueDB . IsEmpty ( ) ;
//False
Die kvp-Sammlung kvdb kann mit der ToString
-Methode als String überprüft werden. Der zurückgegebene Wert kann lokal gespeichert werden, indem in einen dauerhaften Speicher oder in eine Nur-Text-Datei geschrieben wird. Die Ausgabe der ToString
-Methode wird durch den kvos, das Trennzeichen und das Trennzeichen bestimmt.
keyValueDB . ToString ( ) ;
// "Greet=Hello World,Project=KeyValueDB,Project=KeyValueDB,Licence=The MIT Licence"
Das KeyValueDB-Objekt kann mithilfe des foreach..in
Schleifenausdrucks nativ iteriert werden.
foreach ( var kvo in keyValueDB ) {
//operate on the KeyValueObject
}
Die KeyValueObject-Klasse enthält das Schlüssel- und Wertfeld sowie die Felder Setter und Getter. Das KeyValueObject ist der wichtigste interne Typ, der in der KeyValueDB-Klasse verwendet wird.
In KeyValueDB wird das Schlüssel-Wert-Paar im Typ List
gespeichert. Die gesamte Suche, Aktualisierung und Entfernung erfolgt für die keyValueObjects
in der Klasse. Die als erster Parameter gesendete Zeichenfolge, wenn sie mithilfe der Trenn- und Trennzeichenfelder in einen gültigen Schlüsselwert analysiert wird. Die ToString
-Methode analysiert auch den Inhalt keyValueObjects
in eine gültige Zeichenfolge im Hinblick auf Trennzeichen und Trennzeichen.
Bevor Sie mit dem Spenden beginnen, lesen Sie bitte den Beitragsleitfaden unter BEITRAGSLEITFADEN
Sie können ein Problem öffnen oder eine Anfrage einreichen, die sich nur auf Probleme in dieser Implementierung in diesem Repo bezieht. Wenn das Problem die Konzepte des Pakets betrifft, erstellen Sie hier ein Problem oder einen RFC
Sie können einige Mitglieder dieser Community unterstützen, da sie einen großen Einfluss auf die Entwicklung von Menschen haben, die mit der Softwareentwicklung beginnen möchten.
MIT-Lizenz Copyright (c) 2020 Adewale Azeez – keyvaluedb