Development Tip

사전을 변환하는 방법

yourdevel 2020. 11. 27. 21:32
반응형

사전을 변환하는 방법 사전에 C #에서


C #에서 아래 코드가 있습니다.

Dictionary<string, object> dObject = new Dictionary<string, object>();

나는 변환 할 dObjectDictionary<string, string>. 어떻게 할 수 있습니까?


ToDictionary 메서드를 사용합니다.

Dictionary<string, string> dString = dObject.ToDictionary(k => k.Key, k => k.Value.ToString());

여기에서 원래 사전의 키를 재사용하고 ToString 메서드를 사용하여 값을 문자열로 변환합니다.

사전에 null 값이 포함될 수있는 경우 ToString을 수행하기 전에 null 검사를 추가해야합니다.

Dictionary<string, string> dString = dObject.ToDictionary(k => k.Key, k => k.Value == null ? "" : k.Value.ToString());

이것이 작동하는 이유 Dictionary<string, object>는 실제로 IEnumerable<KeyValuePair<string,object>>. 위의 코드 예제는 열거 형을 반복하고 ToDictionary 메서드를 사용하여 새 사전을 만듭니다.

편집하다:

.Net 2.0에서는 ToDictionary 메서드를 사용할 수 없지만 좋은 구식 foreach를 사용하여 동일한 결과를 얻을 수 있습니다.

Dictionary<string, string> sd = new Dictionary<string, string>(); 
foreach (KeyValuePair<string, object> keyValuePair in dict)
{
  sd.Add(keyValuePair.Key, keyValuePair.Value.ToString());
}

편집 2 :

.Net 2.0을 사용 중이고 사전에 null 값을 가질 수있는 경우 다음이 안전해야합니다.

Dictionary<string, string> sd = new Dictionary<string, string>(); 
foreach (KeyValuePair<string, object> keyValuePair in dict)
{
  sd.Add(keyValuePair.Key, keyValuePair.Value == null ? "" : keyValuePair.Value.ToString());
}

.NET 3.5 :

Dictionary<string, string> result = dObject.ToDictionary(kvp => kvp.Key, kvp => Convert.ToString(kvp.Value));

.NET 2.0 :

Dictionary<string, string> result = new Dictionary<string, string>();
foreach (KeyValuePair<string, object> kvp in dObject) result.Add(kvp.Key, Convert.ToString(kvp.Value));

.net 2.0을 사용하고 있으므로 :

Dictionary<string, string> dString = new Dictionary<string, string>();

foreach (KeyValuePair<string, object> item in dObject)
{
    dString.Add(item.Key, item.Value.ToString());
    //here item.Value.ToString() is an example
    //you should convert your item to string according to the requirement
}

어때 :

Dictionary<string, string> newDictionary = dObject.ToDictionary(k => k.Key, k => (string) k.Value);

.Net 2.0에서 가장 친한 친구는 foreach 루프 일 것입니다.

Dictionary<string, object> dObject = new Dictionary<string, object>();
Dictionary<string, string> newObjects = new Dictionary<string, string>();

foreach (KeyValuePair<string, object> keyValuePair in dObject)
{
    newObjects.Add(keyValuePair.Key, keyValuePair.Value.ToString());
}

Dictionary<string, string> dString = dObject.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ToString());

그것은 단지 생각입니다. 모든 확인을 삽입 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/4942624/how-to-convert-dictionarystring-object-to-dictionarystring-string-in-c-sha

반응형