키-값-db-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" ) ;
KeyValueObject
클래스를 사용하여 kvp를 추가합니다.
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
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
키의 일부를 포함하는 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"
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가 두 번째 매개변수로 전송된 경우 요청 키를 찾을 수 없으면 대체 두 번째 매개변수가 kvdb에 추가된 다음 값이 반환됩니다.
핵심 부분을 사용하여 값 가져오기
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 변경의 해시 코드와 같은 고유 필드를 의미합니다. 해당 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
Add
메소드를 호출하여 새 kvp를 삽입할 수 있습니다. 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 ) ;
정수 인덱스의 it 키를 사용하여 kvdb에서 kvp를 완전히 제거합니다. 제거된 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 클래스에는 키 및 값 필드와 필드 setter 및 getter가 포함되어 있습니다. KeyValueObject는 KeyValueDB 클래스에 사용되는 기본 내부 유형입니다.
KeyValueDB에서 키 값 쌍은 List
유형에 저장되며 모든 검색, 업데이트 및 제거는 클래스의 keyValueObjects
에서 수행됩니다. 구분 기호 및 구분 기호 필드를 사용하여 유효한 키 값으로 구문 분석된 경우 첫 번째 매개변수로 전송되는 문자열입니다. 또한 ToString
메서드는 구분 기호 및 구분 기호와 관련하여 keyValueObjects
콘텐츠를 유효한 문자열로 구문 분석합니다.
기여를 시작하기 전에 CONTRIBUTING GUIDE에서 기여 가이드를 읽어보세요.
이 리포지토리에서 이 구현의 문제만 해결하는 문제를 열거나 요청을 제출할 수 있습니다. 문제가 패키지의 개념을 다루는 경우 여기에서 문제 또는 RFC를 생성하세요.
소프트웨어 엔지니어링을 시작하는 사람들의 개발에 큰 영향을 미치므로 이 커뮤니티 중 일부를 지원할 수 있습니다.
MIT 라이센스 저작권 (c) 2020 Adewale Azeez - keyvaluedb