반응형
사전을 변환하는 방법 사전에 C #에서
C #에서 아래 코드가 있습니다.
Dictionary<string, object> dObject = new Dictionary<string, object>();
나는 변환 할 dObject
에 Dictionary<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());
그것은 단지 생각입니다. 모든 확인을 삽입 할 수 있습니다.
반응형
'Development Tip' 카테고리의 다른 글
dig를 사용하여 SPF 레코드 검색 (0) | 2020.11.27 |
---|---|
멀티 스레딩 : 언제 조인을 사용합니까? (0) | 2020.11.27 |
vim은 명확하게 존재하는 간단한 문구를 찾아서 대체하지 않습니다. (0) | 2020.11.27 |
Android의 날짜 및 시간 변경 리스너? (0) | 2020.11.27 |
SQL Server : Null VS 빈 문자열 (0) | 2020.11.27 |