clé-valeur-db-csharp
Package léger pour gérer, charger, mettre à jour et enregistrer rapidement et facilement une base de données de type clé-valeur
Les exemples de cas d'utilisation de ce package sont le chargement d'un fichier de configuration, d'un fichier de langue et d'un paramètre de préférence dans une application. D’autres cas d’utilisation peuvent être consultés ici.
Le package n'effectue aucune opération d'entrée et de sortie car il existe plusieurs façons de lire et d'écrire dans un fichier et les méthodes ont leurs forces et leurs faiblesses, le développeur doit donc trouver le moyen efficace de charger et d'enregistrer localement.
Le nom du package est KeyValueDB.
Utilisation du gestionnaire de packages :
Install-Package KeyValueDB -Version 1.2.0
Utilisation de la CLI .NET :
dotnet add package KeyValueDB --version 1.2.0
Utilisation de la référence du package :
< PackageReference Include = " KeyValueDB " Version = " 1.2.0 " />
Utilisation de la CLI par paquets :
paket add KeyValueDB --version 1.2.0
L'exemple suivant charge, met à jour, lit et supprime un objet clé-valeur simple
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
Seul le type de chaîne est utilisé comme clé et valeur du kvo. Un kvo peut être utilisé pour remplacer ou définir la valeur d'une clé.
Vous pouvez utiliser le package pour mettre à jour et créer une base de données de valeurs-clés existante. Cette bibliothèque ne lit pas la base de données à partir d'un fichier, ce qui signifie que vous devez trouver un moyen de lire une chaîne à partir du fichier.
Créez une nouvelle keyValueDB. Le séparateur par défaut entre la clé et la valeur est =
et le délimiteur entre le kvp est n
(nouvelle ligne).
KeyValueDB keyValueDB = new KeyValueDB ( ) ;
Pour charger une KeyValueDB existante
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
) ;
Le seul type accepté qui peut être inséré est un KeyValueObject
et String
valides. La méthode Add
peut être utilisée pour ajouter un nouveau kvp dans l'objet.
Ajoutez un kvp avec sa clé et sa valeur
keyValueDB . Add ( "Greet" , "Hello World" ) ;
Ajoutez un kvp à l'aide de la classe KeyValueObject
.
KeyValueObject keyValueObject = new KeyValueObject ( "Greet" , "Hello World" ) ;
keyValueDB . Add ( keyValueObject ) ;
Il existe plusieurs façons de rechercher et d'obtenir une valeur de l'objet kvdb. La valeur ou le KeyValueObject peut être obtenu en utilisant les méthodes ci-dessous
Vous pouvez obtenir le kvo en utilisant la clé ou l'index. Si le kvo correspondant n'est pas trouvé, un kvo vide est ajouté à la base de données puis renvoyé mais pas dans le cas où il est demandé avec l'index entier. Si un kvo de secours est envoyé comme deuxième paramètre, alors lorsque la demande kvo n'est pas trouvée, le deuxième paramètre de secours est ajouté au kvdb puis renvoyé.
Obtenez le kvo en utilisant son index entier
keyValueDB . GetKeyValueObject ( 0 ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Obtenez le kvo en utilisant la clé
keyValueDB . GetKeyValueObject ( "Greet" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Obtenez le kvo en utilisant la clé avec le kvo de secours
KeyValueObject keyValueObject = new KeyValueObject ( "Name" , "Adewale Azeez" ) ;
keyValueDB . GetKeyValueObject ( "Name" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Name,Value=Adewale Azeez
Obtenez un kvo en vérifiant dans kvdb l'objet kvo qui contient une partie de la clé. Si un kvo de secours est envoyé comme deuxième paramètre, alors lorsque la demande kvo n'est pas trouvée, le deuxième paramètre de secours est ajouté au kvdb puis renvoyé.
Obtenez un kvo similaire en utilisant cet élément clé
keyValueDB . GetLikeKeyValueObject ( "eet" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Obtenez un kvo similaire en utilisant l'élément clé avec un kvo de secours
KeyValueObject keyValueObject = new KeyValueObject ( "Name" , "Adewale Azeez" ) ;
keyValueDB . getKeyValueObject ( "Nam" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Name,Value=Adewale Azeez
Vous pouvez obtenir une valeur kvdb en utilisant la clé ou l'index. Si la valeur correspondante n'est pas trouvée, une chaîne vide est ajoutée à la base de données puis renvoyée mais pas dans le cas où elle est demandée avec l'index entier.
Si un kvo de secours est envoyé comme deuxième paramètre, lorsque la clé de demande n'est pas trouvée, le deuxième paramètre de secours est ajouté au kvdb, puis la valeur est renvoyée. Si une valeur de chaîne est envoyée comme deuxième valeur, elle est renvoyée si la clé n'est pas trouvée dans le kvdb.
Obtenez une valeur en utilisant son index entier
keyValueDB . Get ( 0 ) ;
//"Hello World"
Obtenez la valeur en utilisant la clé
keyValueDB . Get ( "Greet" ) ;
//"Hello World"
Obtenez le kvo en utilisant la clé avec une valeur de repli
keyValueDB . Get ( "Licence" , "The MIT Licence" ) ;
//"The MIT Licence"
Obtenez le kvo en utilisant la clé avec le kvo de secours
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . Get ( "Name" , keyValueObject ) ;
//"The MIT Licence"
Obtenez une valeur en vérifiant dans kvdb l'objet kvo qui contient une partie de la clé.
Si un kvo de secours est envoyé comme deuxième paramètre, lorsque la clé de demande n'est pas trouvée, le deuxième paramètre de secours est ajouté au kvdb, puis la valeur est renvoyée.
Obtenez une valeur en utilisant la partie clé
keyValueDB . GetLike ( "eet" ) ;
//"Hello World"
Obtenez une valeur en utilisant la partie clé avec kvo de secours
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . GetLike ( "Li" , keyValueObject ) ;
//"The MIT Licence"
Il existe différentes manières de mettre à jour un kvp dans le kvdb, la valeur peut être modifiée directement ou définie sur un nouveau KeyValueObject. Si vous essayez de définir un kvo qui n'existe pas dans le kvdb en utilisant sa clé, il est ajouté au kvdb.
La méthode Set
est utilisée pour modifier la valeur du kvo à l'aide de l'index du kvo ou d'une clé kvo.
Définir une valeur kvo en utilisant son index
keyValueDB . Set ( 0 , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
Définir une valeur kvo en utilisant la clé
keyValueDB . Set ( "Greet" , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
Modifiez complètement un KeyValueObject dans le kvdb en utilisant soit son index, soit sa clé. Le kvo est complètement remplacé, ce qui signifie que des champs uniques comme le hashcode du kvo changent. Lorsque le kvo est défini à l'aide de sa clé, si le kvo correspondant n'existe pas, il est ajouté au kvdb. Notez que cette méthode modifie complètement le kvo afin qu'il puisse être utilisé pour remplacer un kvo.
Définir un kvo en utilisant son index
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . SetKeyValueObject ( 0 , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Licence,Value=The MIT Licence
Définir une valeur kvo en utilisant la clé
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . SetKeyValueObject ( "Greet" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Licence,Value=The MIT Licence
Un nouveau kvp peut être inséré en appelant la méthode Add
. Le kvp peut être ajouté en utilisant sa clé et sa valeur ou en ajoutant directement le KeyValueObject au kvdb.
Ajoutez un nouveau kvp en utilisant la clé et la valeur
keyValueDB . Add ( "Key" , "This is the value" ) ;
Ajouter un nouveau kvp en utilisant un nouveau KeyValueObject
KeyValueObject keyValueObject = new KeyValueObject ( "Key" , "This is the value" ) ;
keyValueDB . Add ( keyValueObject ) ;
Supprimez complètement un kvp du kvdb en utilisant la clé de l'index entier. Le kvp supprimé est renvoyé par la méthode. Si l'index n'existe pas, une erreur hors limite se produit et si un kvo avec la clé n'est pas présent, rien n'est fait mais un kvo vide est renvoyé.
Supprimer un kvp à l'aide d'un index entier
keyValueDB . Remove ( 0 ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Supprimer un kvp en utilisant sa clé
keyValueDB . Remove ( "Greet" ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
Obtenez la taille du kvo dans le kvdb.
keyValueDB . Size ( ) ;
//4
Supprimez tous les éléments et kvo du kvdb
keyValueDB . Clear ( ) ;
//keyValueDB.Size() = 0
Vérifiez si le kvdb contient du kvo.
keyValueDB . IsEmpty ( ) ;
//False
La collection kvp kvdb peut être inspectée sous forme de chaîne à l'aide de la méthode ToString
. La valeur renvoyée peut être enregistrée localement en écrivant dans un stockage persistant ou dans un fichier texte brut. La sortie de la méthode ToString
est déterminée par le kvos, le séparateur et le délimiteur.
keyValueDB . ToString ( ) ;
// "Greet=Hello World,Project=KeyValueDB,Project=KeyValueDB,Licence=The MIT Licence"
L'objet KeyValueDB peut être itéré de manière native à l'aide de l'expression de boucle foreach..in
.
foreach ( var kvo in keyValueDB ) {
//operate on the KeyValueObject
}
La classe KeyValueObject contient le champ clé et valeur ainsi que les champs setter et getter. Le KeyValueObject est le principal type interne utilisé dans la classe KeyValueDB.
Dans KeyValueDB, la paire clé-valeur est stockée dans le type List
, toutes les recherches, mises à jour et suppressions sont effectuées sur les keyValueObjects
de la classe. La chaîne envoyée comme premier paramètre si elle est analysée en valeur de clé valide à l'aide des champs séparateur et délimiteur. La méthode ToString
analyse également le contenu keyValueObjects
en une chaîne valide en ce qui concerne le séparateur et le délimiteur.
Avant de commencer votre contribution, veuillez lire le guide de contribution sur GUIDE DE CONTRIBUTION
Vous pouvez ouvrir un problème ou déposer une demande qui résout uniquement les problèmes de cette implémentation sur ce référentiel, si le problème concerne les concepts du package, créez un problème ou une rfc ici
Vous pouvez soutenir certains membres de cette communauté car ils ont un impact important sur le développement des personnes souhaitant se lancer dans le génie logiciel.
Licence MIT Copyright (c) 2020 Adewale Azeez - keyvaluedb