คีย์-ค่า-db-csharp
แพ็คเกจน้ำหนักเบาเพื่อจัดการ โหลด อัปเดต และบันทึกฐานข้อมูลประเภทคีย์-ค่าได้อย่างรวดเร็วและง่ายดาย
กรณีการใช้งานตัวอย่างของแพ็คเกจนี้คือการโหลดไฟล์การกำหนดค่า ไฟล์ภาษา การตั้งค่ากำหนดในแอปพลิเคชัน สามารถดูกรณีการใช้งานเพิ่มเติมได้ที่นี่
แพ็คเกจไม่ได้ดำเนินการอินพุตและเอาท์พุตใด ๆ เนื่องจากมีหลายวิธีในการอ่านและเขียนลงไฟล์ และวิธีการมีทั้งจุดแข็งและจุดอ่อน ดังนั้นนักพัฒนาจึงต้องหาวิธีที่มีประสิทธิภาพในการโหลดและบันทึกในเครื่อง
ชื่อแพ็คเกจคือ KeyValueDB
การใช้ Package-Manager:
Install-Package KeyValueDB -Version 1.2.0
การใช้ .NET CLI:
dotnet add package KeyValueDB --version 1.2.0
การใช้การอ้างอิง Pakage:
< 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 ว่างจะถูกเพิ่มไปยัง db แล้วส่งคืน แต่ไม่ใช่ในกรณีที่ร้องขอด้วยดัชนีจำนวนเต็ม หาก 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 โดยใช้คีย์ it พร้อมกับ 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 ได้โดยใช้คีย์หรือดัชนี หากไม่พบค่าที่สอดคล้องกัน สตริงว่างจะถูกเพิ่มใน db แล้วส่งคืน แต่ไม่ใช่ในกรณีที่ร้องขอด้วยดัชนีจำนวนเต็ม
หาก kvo ทางเลือกสำรองถูกส่งเป็นพารามิเตอร์ตัวที่สอง เมื่อไม่พบคีย์คำขอ พารามิเตอร์สำรองตัวที่สองจะถูกเพิ่มไปยัง kvdb จากนั้นค่าจะถูกส่งกลับ หากค่าสตริงถูกส่งเป็นค่าที่สอง ค่านั้นจะถูกส่งกลับหากไม่พบคีย์ใน kvdb
รับค่าโดยใช้ดัชนีจำนวนเต็ม
keyValueDB . Get ( 0 ) ;
//"Hello World"
รับค่าโดยใช้คีย์มัน
keyValueDB . Get ( "Greet" ) ;
//"Hello World"
รับ kvo โดยใช้คีย์ it พร้อมค่าสำรอง
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"
รับค่าโดยการตรวจสอบ 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 โดยใช้คีย์ it มันจะถูกเพิ่มเข้าไปใน 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 โดยใช้ปุ่ม it
keyValueDB . Set ( "Greet" , "Hello World from thecarisma" ) ;
//Io.Github.Thecarisma.KeyValueObject@55915408:Key=Greet,Value=Hello World from thecarisma
เปลี่ยน KeyValueObject โดยสมบูรณ์ใน kvdb โดยใช้ดัชนีหรือคีย์ it kvo ถูกแทนที่โดยสมบูรณ์ ซึ่งหมายถึงฟิลด์เฉพาะ เช่น รหัสแฮชของการเปลี่ยนแปลง kvo เมื่อตั้งค่า kvo โดยใช้คีย์ it หากไม่มี 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 โดยใช้ปุ่ม it
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 โดยใช้คีย์ it
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
ลงในสตริงที่ถูกต้องโดยคำนึงถึงตัวคั่นและตัวคั่น
ก่อนที่คุณจะเริ่มการบริจาค โปรดอ่านคู่มือการบริจาคที่ CONTRIBUTING GUIDE
คุณสามารถเปิดปัญหาหรือยื่นคำขอที่แก้ไขปัญหาในการใช้งานนี้ใน repo นี้เท่านั้น หากปัญหาระบุถึงแนวคิดของแพ็คเกจ ให้สร้างปัญหาหรือ rfc ที่นี่
คุณสามารถสนับสนุนชุมชนบางแห่งได้เนื่องจากชุมชนเหล่านี้สร้างผลกระทบอย่างมากต่อการพัฒนาบุคลากรในการเริ่มต้นวิศวกรรมซอฟต์แวร์
ใบอนุญาต MIT ลิขสิทธิ์ (c) 2020 Adewale Azeez - keyvaluedb