たとえば、私は行くことができます:
string[] keys = new string[items.Count];
items.Keys.CopyTo(keys);
アイテムは次のとおりです。
Dictionary<string, MyObject>
別のスレッドによって変更されている可能性のあるインスタンス? ( Keys プロパティにアクセスするときに Dictionary の内部動作がコレクションを反復するかどうかはわかりません。その場合、スレッドセーフではないことがわかっています)。
更新: Dictonary のサイズが行間で変化する可能性があるため、上記の例はスレッドセーフではないことに気付きました。しかし、どうですか:
Dictionary<string, MyObject> keys = items.Keys;
string[] copyOfKeys = new string[keys.Count];
keys.Keys.CopyTo(copyOfKeys );