2016-04-08 5 views
6

の最後にハッシュテーブルを追加します。これが何を意味するのか、何が間違っているのかを完全に理解していない。私の方法は次のようになります:は、私はハッシュテーブルを受け入れ、私は別のハッシュテーブルの末尾に追加する連結を使用していますが、私はこのエラーを取得しています方法を持っている別のHashtable

public void resetCameras(Hashtable hashTable) 
{ 
    Hashtable ht = new Hashtable(); 

    ht.Add("time", 2.0f); 
    ht.Add("easeType","easeInOutQuad"); 
    ht.Add("onupdate","UpdateSize"); 
    ht.Add("from",size); 
    ht.Add("to",5.0f); 

    if(hashTable != null) { 
     ht = ht.Concat(hashTable); 
    } 

    iTween.ValueTo(gameObject,ht); 
} 

あなたは私の間違いを説明するのを助けることができます、まだC#で​​新しいです。

+0

ハッシュテーブルを列挙すると、**キーのみ**が列挙されます。基本的には、LINQは、あなたが '連結 'しているキーに*値*が必要であることを伝えています。 – Tersosauros

+1

また、HashTable/Dictionaryには注文の概念がないため、「最後に追加」は実際にはこれらのタイプの有効な操作ではありません。 –

+0

@Tersosaurosので、私はforループを使用する必要がありますか?その場合、私はちょうど '.Add'を他のキーに使うのではないのですか? – WDUK

答えて

6

merge/concat 2つのHashTablesに残念なことに簡単な方法はありません。それぞれのエントリを伝統的な方法で繰り返す必要があります。

foreach (DictionaryEntry entry in hashTable) 
{ 
    if(!ht.ContainsKey(entry.Key)) 
    { 
     ht.Add(entry.Key, entry.Value); 
    } 
} 

// rest of the logic 
関連する問題