キー値-db-csharp
Key-Value タイプのデータベースを迅速かつ簡単に管理、ロード、更新、保存するための軽量パッケージ
このパッケージのサンプル ユース ケースは、構成ファイル、言語ファイル、環境設定をアプリケーションにロードすることです。その他の使用例はここでご覧いただけます。
ファイルの読み取りと書き込みにはいくつかの方法があり、メソッドにはそれぞれ長所と短所があるため、開発者はローカルでロードおよび保存する効率的な方法を見つける必要があるため、パッケージは入出力操作を行いません。
パッケージ名は KeyValueDB です。
パッケージマネージャーの使用:
Install-Package KeyValueDB -Version 1.2.0
.NET CLI の使用:
dotnet add package KeyValueDB --version 1.2.0
パッケージ参照の使用:
< PackageReference Include = " KeyValueDB " Version = " 1.2.0 " />
パケット CLI の使用:
paket add KeyValueDB --version 1.2.0
次の例では、単純なキー値オブジェクトをロード、更新、読み取り、削除します。
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
kvo のキーと値としては文字列型のみが使用されます。 kvo を使用して、キーの値を置換または設定できます。
このパッケージを使用して、既存のキー値データベースを更新および作成できます。このライブラリはファイルからデータベースを読み取りません。つまり、ファイルから文字列を読み取る方法を見つける必要があります。
新しい keyValueDB を作成します。キーと値の間のデフォルトの区切り文字は=
で、kvp の間の区切り文字はn
(改行) です。
KeyValueDB keyValueDB = new KeyValueDB ( ) ;
既存の 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
) ;
挿入できる唯一の受け入れ可能な型は、有効なKeyValueObject
およびString
です。 Add
メソッドを使用して、新しい kvp をオブジェクトに追加できます。
キーと値を使用して kvp を追加します
keyValueDB . Add ( "Greet" , "Hello World" ) ;
KeyValueObject
クラスを使用して kvp を追加します。
KeyValueObject keyValueObject = new KeyValueObject ( "Greet" , "Hello World" ) ;
keyValueDB . Add ( keyValueObject ) ;
kvdb オブジェクトから値を検索して取得するには、いくつかの方法があります。値または KeyValueObject は、以下のメソッドを使用して取得できます。
キーまたはインデックスを使用して kvo を取得できます。対応する kvo が見つからない場合は、空の kvo がデータベースに追加されて返されますが、整数インデックスで要求された場合はそうではありません。フォールバック kvo が 2 番目のパラメーターとして送信される場合、リクエスト kvo が見つからない場合は、フォールバック 2 番目のパラメーターが kvdb に追加されて返されます。
整数インデックスを使用して kvo を取得します
keyValueDB . GetKeyValueObject ( 0 ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
itキーを使用してkvoを取得します
keyValueDB . GetKeyValueObject ( "Greet" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
フォールバック kvo で it キーを使用して kvo を取得する
KeyValueObject keyValueObject = new KeyValueObject ( "Name" , "Adewale Azeez" ) ;
keyValueDB . GetKeyValueObject ( "Name" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Name,Value=Adewale Azeez
kvdb でキーの一部を含む kvo オブジェクトを確認して、kvo を取得します。フォールバック kvo が 2 番目のパラメーターとして送信される場合、リクエスト kvo が見つからない場合は、フォールバック 2 番目のパラメーターが kvdb に追加されて返されます。
主要な部分を使用して同様の kvo を取得します
keyValueDB . GetLikeKeyValueObject ( "eet" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
フォールバック kvo のキー部分を使用して同様の kvo を取得します
KeyValueObject keyValueObject = new KeyValueObject ( "Name" , "Adewale Azeez" ) ;
keyValueDB . getKeyValueObject ( "Nam" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Name,Value=Adewale Azeez
キーまたはインデックスを使用して kvdb 値を取得できます。対応する値が見つからない場合は、空の文字列がデータベースに追加されて返されますが、整数インデックスで要求された場合はそうではありません。
フォールバック kvo が 2 番目のパラメーターとして送信される場合、リクエスト キーが見つからない場合は、フォールバック 2 番目のパラメーターが kvdb に追加され、値が返されます。文字列値が 2 番目の値として送信された場合、kvdb 内でキーが見つからない場合は文字列値が返されます。
整数インデックスを使用して値を取得します
keyValueDB . Get ( 0 ) ;
//"Hello World"
itキーを使用して値を取得します
keyValueDB . Get ( "Greet" ) ;
//"Hello World"
フォールバック値を含む it キーを使用して kvo を取得します
keyValueDB . Get ( "Licence" , "The MIT Licence" ) ;
//"The MIT Licence"
フォールバック kvo で it キーを使用して kvo を取得する
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . Get ( "Name" , keyValueObject ) ;
//"The MIT Licence"
キーの一部を含む kvo オブジェクトの kvdb を確認して、値を取得します。
フォールバック kvo が 2 番目のパラメーターとして送信される場合、リクエスト キーが見つからない場合は、フォールバック 2 番目のパラメーターが kvdb に追加され、値が返されます。
itキー部分を使用して値を取得します
keyValueDB . GetLike ( "eet" ) ;
//"Hello World"
フォールバック kvo のキー部分を使用して値を取得します
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . GetLike ( "Li" , keyValueObject ) ;
//"The MIT Licence"
kvdb 内の kvp を更新するにはさまざまな方法があり、値を直接変更することも、新しい KeyValueObject に設定することもできます。 it キーを使用して kvdb に存在しない kvo を設定しようとすると、kvdb に追加されます。
Set
メソッドは、kvo のインデックスまたは kvo キーを使用して kvo の値を変更するために使用されます。
インデックスを使用して kvo 値を設定します
keyValueDB . Set ( 0 , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
it キーを使用して kvo 値を設定します
keyValueDB . Set ( "Greet" , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
インデックスまたはキーを使用して、kvdb 内の KeyValueObject を完全に変更します。 kvo は完全に置き換えられます。これは、kvo のハッシュコードなどの一意のフィールドが変更されることを意味します。 it キーを使用して kvo を設定するときに、対応する kvo が存在しない場合は、kvdb に追加されます。このメソッドは kvo を完全に変更するため、kvo の置き換えに使用できることに注意してください。
インデックスを使用して kvo を設定する
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . SetKeyValueObject ( 0 , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Licence,Value=The MIT Licence
it キーを使用して kvo 値を設定します
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . SetKeyValueObject ( "Greet" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Licence,Value=The MIT Licence
新しい kvp は、 Add
メソッドを呼び出すことで挿入できます。 kvp は、キーと値を使用するか、KeyValueObject を kvdb に直接追加することによって追加できます。
キーと値を使用して新しい kvp を追加します
keyValueDB . Add ( "Key" , "This is the value" ) ;
新しい KeyValueObject を使用して新しい kvp を追加します
KeyValueObject keyValueObject = new KeyValueObject ( "Key" , "This is the value" ) ;
keyValueDB . Add ( keyValueObject ) ;
整数インデックスのいずれかのキーを使用して、kvp を kvdb から完全に削除します。削除された kvp がメソッドから返されます。インデックスが存在しない場合は範囲外エラーが発生し、キーを持つ kvo が存在しない場合は何も行われず、空の kvo が返されます。
整数インデックスを使用して kvp を削除する
keyValueDB . Remove ( 0 ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
it キーを使用して kvp を削除します
keyValueDB . Remove ( "Greet" ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
kvdb 内の kvo のサイズを取得します。
keyValueDB . Size ( ) ;
//4
kvdb からすべての要素と kvo を削除します。
keyValueDB . Clear ( ) ;
//keyValueDB.Size() = 0
kvdb に kvo が含まれているかどうかを確認します。
keyValueDB . IsEmpty ( ) ;
//False
kvp コレクション kvdb は、 ToString
メソッドを使用して文字列として検査できます。戻り値は、永続ストレージまたはプレーン テキスト ファイルに書き込むことでローカルに保存できます。 ToString
メソッドの出力は、kvos、区切り文字、区切り文字によって決まります。
keyValueDB . ToString ( ) ;
// "Greet=Hello World,Project=KeyValueDB,Project=KeyValueDB,Licence=The MIT Licence"
KeyValueDB オブジェクトは、 foreach..in
ループ式を使用してネイティブに反復できます。
foreach ( var kvo in keyValueDB ) {
//operate on the KeyValueObject
}
KeyValueObject クラスには、キーと値のフィールド、およびフィールドのセッターとゲッターが含まれています。 KeyValueObject は、KeyValueDB クラスで使用される主要な内部型です。
KeyValueDB では、キーと値のペアはList
型に格納され、すべての検索、更新、削除はクラス内のkeyValueObjects
に対して行われます。区切り文字フィールドと区切り文字フィールドを使用して有効なキー値に解析された場合に、最初のパラメータとして送信される文字列。 ToString
メソッドは、 keyValueObjects
内容を、区切り文字と区切り文字に関して有効な文字列に解析します。
貢献を始める前に、貢献ガイドにある貢献ガイドをお読みください。
このリポジトリでこの実装の問題のみに対処する問題を開いたり、リクエストを提出したりできます。問題がパッケージの概念に対処している場合は、ここで問題または RFC を作成します。
このコミュニティの一部は、ソフトウェア エンジニアリングを始める人材の育成に大きな影響を与えるため、サポートすることができます。
MIT ライセンス Copyright (c) 2020 Adewale Azeez - keyvaluedb