مفتاح القيمة ديسيبل csharp
حزمة خفيفة الوزن لإدارة قاعدة بيانات نوع القيمة الرئيسية وتحميلها وتحديثها وحفظها بسرعة وسهولة
حالات الاستخدام النموذجية لهذه الحزمة هي تحميل ملف التكوين وملف اللغة وإعداد التفضيلات في التطبيق. يمكن رؤية المزيد من حالات الاستخدام هنا.
لا تقوم الحزمة بأي عملية إدخال وإخراج نظرًا لوجود عدة طرق لقراءة الملف والكتابة إليه، وللطرق قوتها وضعفها، لذلك يتعين على المطور العثور على الطريقة الفعالة للتحميل والحفظ محليًا.
اسم الحزمة هو 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" ) ;
أضف kvp باستخدام فئة KeyValueObject
.
KeyValueObject keyValueObject = new KeyValueObject ( "Greet" , "Hello World" ) ;
keyValueDB . Add ( keyValueObject ) ;
هناك عدة طرق للعثور على قيمة والحصول عليها من كائن kvdb. يمكن الحصول على القيمة أو KeyValueObject باستخدام الطرق الموضحة أدناه
يمكنك الحصول على kvo باستخدام المفتاح أو الفهرس. إذا لم يتم العثور على kvo المقابل، تتم إضافة kvo فارغ إلى قاعدة البيانات ثم يتم إعادته ولكن ليس في الحالة التي يتم فيها طلب الفهرس الصحيح. إذا تم إرسال kvo الاحتياطي كمعلمة ثانية، فعند عدم العثور على الطلب kvo، تتم إضافة المعلمة الاحتياطية الثانية إلى kvdb ثم يتم إرجاعها.
احصل على kvo باستخدام فهرس الأعداد الصحيحة
keyValueDB . GetKeyValueObject ( 0 ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
احصل على kvo باستخدام مفتاحه
keyValueDB . GetKeyValueObject ( "Greet" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
احصل على kvo باستخدام مفتاحه مع احتياطي kvo
KeyValueObject keyValueObject = new KeyValueObject ( "Name" , "Adewale Azeez" ) ;
keyValueDB . GetKeyValueObject ( "Name" , keyValueObject ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Name,Value=Adewale Azeez
احصل على kvo عن طريق التحقق من kvdb بحثًا عن كائن kvo الذي يحتوي على جزء من المفتاح. إذا تم إرسال kvo الاحتياطي كمعلمة ثانية، فعند عدم العثور على الطلب kvo، تتم إضافة المعلمة الاحتياطية الثانية إلى 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 احتياطي كمعلمة ثانية، فعند عدم العثور على مفتاح الطلب، تتم إضافة المعلمة الاحتياطية الثانية إلى kvdb ثم يتم إرجاع القيمة. إذا تم إرسال قيمة سلسلة كقيمة ثانية، فسيتم إرجاعها إذا لم يتم العثور على المفتاح في kvdb.
احصل على قيمة باستخدام فهرس الأعداد الصحيحة
keyValueDB . Get ( 0 ) ;
//"Hello World"
احصل على القيمة باستخدام مفتاحه
keyValueDB . Get ( "Greet" ) ;
//"Hello World"
احصل على kvo باستخدام مفتاحه مع القيمة الاحتياطية
keyValueDB . Get ( "Licence" , "The MIT Licence" ) ;
//"The MIT Licence"
احصل على kvo باستخدام مفتاحه مع kvo الاحتياطي
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . Get ( "Name" , keyValueObject ) ;
//"The MIT Licence"
احصل على القيمة عن طريق التحقق من kvdb بحثًا عن كائن kvo الذي يحتوي على جزء من المفتاح.
إذا تم إرسال kvo احتياطي كمعلمة ثانية، فعند عدم العثور على مفتاح الطلب، تتم إضافة المعلمة الاحتياطية الثانية إلى kvdb ثم يتم إرجاع القيمة.
احصل على قيمة باستخدام الجزء الرئيسي منها
keyValueDB . GetLike ( "eet" ) ;
//"Hello World"
احصل على قيمة باستخدام الجزء الرئيسي منها مع خيار kvo الاحتياطي
KeyValueObject keyValueObject = new KeyValueObject ( "Licence" , "The MIT Licence" ) ;
keyValueDB . GetLike ( "Li" , keyValueObject ) ;
//"The MIT Licence"
هناك طرق مختلفة لتحديث kvp في kvdb، ويمكن تغيير القيمة مباشرة أو تعيينها إلى KeyValueObject جديد. إذا حاولت تعيين kvo غير موجود في kvdb باستخدام مفتاحه، فسيتم إضافته إلى 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
قم بتعيين قيمة kvo باستخدام مفتاحه
keyValueDB . Set ( "Greet" , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
قم بتغيير KeyValueObject بالكامل في kvdb باستخدام فهرسه أو مفتاحه. تم استبدال kvo بالكامل مما يعني حقولًا فريدة مثل رمز التجزئة الخاص بتغييرات kvo. عندما يتم تعيين 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
قم بتعيين قيمة 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" ) ;
قم بإضافة kvp جديد باستخدام KeyValueObject جديد
KeyValueObject keyValueObject = new KeyValueObject ( "Key" , "This is the value" ) ;
keyValueDB . Add ( keyValueObject ) ;
قم بإزالة kvp بالكامل من kvdb باستخدام مفتاح it الخاص بالفهرس الصحيح. يتم إرجاع kvp الذي تمت إزالته من الطريقة. إذا لم يكن الفهرس موجودًا، فسيحدث خطأ خارج النطاق وإذا لم يكن kvo مع المفتاح موجودًا، فلن يتم فعل أي شيء ولكن سيتم إرجاع kvo فارغًا.
قم بإزالة kvp باستخدام فهرس عدد صحيح
keyValueDB . Remove ( 0 ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
قم بإزالة kvp باستخدام مفتاحه
keyValueDB . Remove ( "Greet" ) ;
//removes the first kvp in the kvdb
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World
احصل على حجم kvo في ملف kvdb.
keyValueDB . Size ( ) ;
//4
قم بإزالة كافة العناصر و kvo من ملف kvdb
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 هنا
يمكنك دعم بعض أعضاء هذا المجتمع لأنهم يحدثون تأثيرًا كبيرًا في تطوير الأشخاص للبدء في هندسة البرمجيات.
حقوق الطبع والنشر لترخيص معهد ماساتشوستس للتكنولوجيا (c) 2020 Adewale Azeez - keyvaluedb