私はすでにC#拡張関数内で値(== null)を初期化するにはどうすればよいですか?
if (obj == null)
obj = new Dictionary<string, object>();
to_Add.ToList().ForEach(x => obj.Add(x.Key, x.Value));
など
を試してみましたpublic static bool AddDict(this Dictionary<string, object> obj, Dictionary<string, object> to_Add)
{to_Add.ToList().ForEach(x => obj.Add(x.Key, x.Value));}
のような拡張機能を持っていると、誰かが
Dictionary<string, object> test=null;
test.AddDict(oldDictionary);
のようにそれを使用する場合は、結果の辞書を構築したいです
if (obj == null)
obj = (Dictionary<string,object>)to_add;
else
to_Add.ToList().ForEach(x => obj.Add(x.Key, x.Value));
しかし、上記のいずれも意図したとおりに機能しませんでした。ブースの方法では、テストディクショナリはnullのようです。 nullの場合、関数内でthis-valueを初期化する方法はありますか?
'List.ForEach'を使用できるようにするために' ToList'を使用するという悪い習慣を取り除きます。元のシーケンスを列挙できるだけの理由で、別のコレクションを作成して埋めています。あなたは 'foreach'ループで既にこれを行うことができます –
' bool'しかし辞書を返さないでください、 –
[最初のコメント] OK、これもオプションです。 ここでは、最高のパフォーマンスを得る方法についてかなり長いスレッドを読んでいます。上のステートメントは選択されたものでした。 [第2のコメント] クール、thats it!しかし、私は本当になぜそれが動作するのかわかりません:/ –