2013-08-30 2 views
0

이 작은 클래스를 파이썬에서 C#으로 변환하는 데 어려움이 있습니다. 아무도 도와 줄 수 없습니까?파이썬에서 C로 변환 #

지금까지 나는이있다 :

class objDict(object): 

    def __init__(self, obj): 
     for k, v in obj.iteritems(): 
      if isinstance(v, dict): 
       setattr(self, _to_str(k).title(), objDict(v)) 
      else: 
       setattr(self, k, v) 

    def __getitem__(self, val): 
     return self.__dict__[val] 

    def __repr__(self): 
     return '{%s}' % str(', '.join('%s : %s' % (k, repr(v)) for (k, v) in self.__dict__.iteritems())) 

: 나는 어떻게 해야할지 모르겠어요 나머지

public class objDict 
{ 
    public objDict(Dictionary<object, object> obj) 
    { 
     foreach(KeyValuePair<object, object> kvp in obj) 
     { 

     } 
    } 
} 

을 ... 파이썬
에 대해 조금 여기 클래스 알고 미리 감사드립니다!

+3

지금까지 무엇을 가지고 계셨습니까? 또한 http://msdn.microsoft.com/en-us/library/xfhwa508.aspx를 사용하지 않는 이유는 무엇입니까? –

+4

왜이 작업을 수행해야합니까? 어떤 문제를 해결하려고합니까? –

+1

수업은 무엇을 목적으로합니까? –

답변

2

그것은해야 뭔가 같은 :

class objDict : Dictionary<object, object> 
{ 
    // __init__ 
    public objDict(IDictionary obj = null) 
    { 
     if (obj == null) 
     { 
      return; 
     } 

     foreach (DictionaryEntry kv in obj) 
     { 
      if (kv.Value is IDictionary) 
      { 
       // Not sure if it should be CultureInfo.InvariantCulture or CultureInfo.CurrentCulture 
       this.Add(CultureInfo.InvariantCulture.TextInfo.ToTitleCase(kv.Key.ToString()), new objDict((IDictionary)kv.Value)); 
      } 
      else 
      { 
       this.Add(kv.Key, kv.Value); 
      } 
     } 
    } 

    // __getitem__ 
    public object this[object key] 
    { 
     get 
     { 
      return this[key]; 
     } 
    } 

    // __repr__ 
    public string ToString() 
    { 
     return string.Join(", ", this.Select(p => string.Format("{0} : {0}", p.Key, p.Value))); 
    } 
} 

나는 우리가 내부 사전이 얕은 복제 될 것 제외하면 나는 고전 Dictionary<object, object>보다 "더 나은"아무것도 표시되지 않는 말과이 있다는 것이다 유용한 .ToString().