code

키 / 값 쌍 개체에 항목을 삽입하는 방법은 무엇입니까?

codestyles 2020. 11. 27. 08:07
반응형

키 / 값 쌍 개체에 항목을 삽입하는 방법은 무엇입니까?


알겠습니다. 여기 소프트볼 질문이 있습니다 ...

특정 위치의 객체에 키 / 값 쌍을 삽입 할 수 있으면됩니다. 저는 현재이 기능을 허용하지 않는 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

반응형