2009-11-13 3 views
0

모든 DateTime 값을 String으로 변환해야하지만, 내 프로젝트가 끝날 때마다 내 모든 코드가 4 개의 다른 Hashtables (실제로는 CookComputing xmlrpc 라이브러리의 XmlRpcStruct 객체)가있는 1 개의 함수를 따른다.모든 해시 테이블 값에서 DateTime 유형의 값을 필터링하는 방법은 무엇입니까?

거기에 각 해시 테이블을 반복하지 않고 - datetime -> string을 갖는 해시 테이블의 값을 변환 할 수있는 방법이 있습니다.

반복하지 않고도 처리 속도를 향상시킬 수는 있지만 키가 다른 해시 테이블을 포함하는 중첩 된 해시 테이블에 대해서도이를 해결해야합니다.

+0

해시 테이블이 채워지는 방법과 서버로 보내지는 방법에 대해 좀 더 자세히 설명해 주실 수 있습니까? – FrenchData

답변

1

해시 테이블을 해당 서버로 보내기 바로 전에 처리 할 수 ​​있습니다. 각 개체를 검사하십시오. 정말 DateTime인가요? .ToString으로 바꿉니다.

public static void ProcessHT(Hashtable ht) 
{ 
    Hashtable dates = new Hashtable(); 

    foreach(DictionaryEntry de in ht) 
    { 
     if (de.Value is DateTime) 
      dates.Add(de.Key, de.Value); 
    } 

    foreach(DictionaryEntry de in dates) 
    { 
     ht.Remove(de.Key); 
     ht.Add(de.Key, ((DateTime)de.Value).ToString("s")); 
    } 
} 

public static void RunSnippet() 
{ 
    Hashtable ht = new Hashtable(); 

    ht.Add("1", "one"); 
    ht.Add("date", DateTime.Today); 
    ht.Add("num", 1); 
    Print(ht); 
    WL("---"); 
    ProcessHT(ht); 
    Print(ht); 
} 

private static void Print(Hashtable ht) 
{ 
    foreach (DictionaryEntry de in ht) 
    { 
     WL("{0} = {1}", de.Key, de.Value); 
    } 
} 
+0

중첩 된 해시 테이블이있는 경우 내 해시 테이블 자체에 다른 해시 테이블이 들어있는 부분을 발견했습니다. (땀) – shahjapan

+0

일종의 itterating ....없이 모든 DateTime 값을 변환하는 방법입니다 묻는 것처럼이 일종의 질문의 목적을 물리 칠이 반복입니다. – James

+0

예 james,하지만 중첩 된 해시 테이블에 오류가 발생하여 반복적으로 멈췄다. – shahjapan

0

해시 테이블에 날짜를 추가하는 이유는 무엇입니까?

myHashTable.Add("ADate", DateTime.Now.ToString()); 
+0

이 있기 때문에 DateTime이 150 회 이상 발생했습니다. 개발자는 DateTime을 Server에 전달할 때까지 문자열을 변환하지 않아서 실수로 실수를 할 수 있습니다. 이제 Server는 최신 버전에서 DateTime을 사용할 수 없습니다! !! !! |) – shahjapan

+0

정확하게 서버로 전달되는 방법은 무엇입니까? 전체 해시 테이블 또는 해시 테이블이 반복되고 개별 값이 전달됩니까? – James

+0

전체 해시 테이블이 전달됩니다! – shahjapan

관련 문제