키 / 값 쌍 개체에 항목을 삽입하는 방법은 무엇입니까?
알겠습니다. 여기 소프트볼 질문이 있습니다 ...
특정 위치의 객체에 키 / 값 쌍을 삽입 할 수 있으면됩니다. 저는 현재이 기능을 허용하지 않는 Hashtable을 사용하고 있습니다. 최선의 접근 방법은 무엇입니까?
업데이트 : 또한 키로 조회하는 기능이 필요합니다.
예를 들어 ... 지나치게 단순화되고 의사 코딩되었지만 요점을 전달해야합니다.
// existing Hashtable
myHashtable.Add("somekey1", "somevalue1");
myHashtable.Add("somekey2", "somevalue2");
myHashtable.Add("somekey3", "somevalue3");
// Some other object that will allow me to insert a new key/value pair.
// Assume that this object has been populated with the above key/value pairs.
oSomeObject.Insert("newfirstkey","newfirstvalue");
미리 감사드립니다.
List<KeyValuePair<string, string>> kvpList = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("Key1", "Value1"),
new KeyValuePair<string, string>("Key2", "Value2"),
new KeyValuePair<string, string>("Key3", "Value3"),
};
kvpList.Insert(0, new KeyValuePair<string, string>("New Key 1", "New Value 1"));
이 코드 사용 :
foreach (KeyValuePair<string, string> kvp in kvpList)
{
Console.WriteLine(string.Format("Key: {0} Value: {1}", kvp.Key, kvp.Value);
}
예상되는 출력은 다음과 같아야합니다.
Key: New Key 1 Value: New Value 1
Key: Key 1 Value: Value 1
Key: Key 2 Value: Value 2
Key: Key 3 Value: Value 3
KeyValuePair 또는 사용하려는 다른 유형에서도 동일하게 작동합니다.
편집하다 -
키로 조회하려면 다음을 수행 할 수 있습니다.
var result = stringList.Where(s => s == "Lookup");
다음을 수행하여 KeyValuePair로이를 수행 할 수 있습니다.
var result = kvpList.Where (kvp => kvp.Value == "Lookup");
마지막 수정-
문자열이 아닌 KeyValuePair에 대한 답변을 작성했습니다.
아마도 OrderedDictonary 가 당신을 도울 것입니다.
키로 개체를 찾아야합니까? 그렇지 않은 경우 .NET 4를 사용 List<Tuple<string, string>>
하거나 List<KeyValuePair<string, string>>
사용하지 않는 것이 좋습니다.
OrderedDictionary를 사용할 수 있지만 왜 그렇게 하려는지 의문이 있습니다.
연결 목록을 사용하십시오. 이 정확한 상황을 위해 설계되었습니다.
여전히 사전 O (1) 조회가 필요한 경우 사전과 연결 목록을 모두 사용하십시오.
해시 테이블은 본질적으로 정렬되지 않습니다. 가장 좋은 방법은 SortedList 또는 ArrayList와 같은 다른 구조를 사용하는 것입니다.
내가 사용하는 것이 Dictionary<TKey, TValue>
(너무 오래 각 키가 고유로를).
편집 : 죄송합니다, 특정 위치에 추가하고 싶었다는 것을 깨달았습니다. 내 잘못이야. SortedDictionary를 사용할 수 있지만 여전히 삽입 할 수 없습니다.
참고URL : https://stackoverflow.com/questions/2745342/how-to-insert-an-item-into-a-key-value-pair-object
'code' 카테고리의 다른 글
Apache HttpClient API에서 CloseableHttpClient와 HttpClient의 차이점은 무엇입니까? (0) | 2020.11.27 |
---|---|
NLog 항목을 vs2008 '출력'창에 어떻게 출력 할 수 있습니까? (0) | 2020.11.27 |
자식 리베이스 병합 충돌 (0) | 2020.11.27 |
APK 서명 오류 : 키 저장소에서 키를 읽지 못했습니다. (0) | 2020.11.27 |
Centos에 crontab을 설치하는 방법 (0) | 2020.11.27 |