2011-12-08 12 views
7

私は.NET 3.5で働いている、と私はこれがあります。SortedList <int, T>からリスト<T>を作成するにはどうすればよいですか?

SortedList<int, BrainTickTransition> 

をそして、私はこれらのいずれたい:

List<BrainTickTransition> 

はすべてコピーすることなく、これを行うための簡単な方法はありますSortedListからの値のうちのどれか?

+0

SortedList.Valuesプロパティについて考えてみましょう。 –

+0

私はList を直列化するdatacontractを持っています。そのため、リストが必要です。 – Almo

答えて

11

List<TValue>SortedList<TKey,TValue>の間でメモリを共有する方法がないため、値をコピーする必要があります。

私はあなたがして行うことができますキー、気にすることなく値を含むList<TValue>をしたいと仮定します。

sortedList.Values.ToList(); 

しかし、あなただけの IList<TValue>(具体的なクラス List<TValue>ではなく)することができますが必要な場合直接 Valuesプロパティを使用して、コピーを作成しないようにしてください。

もちろん、これらのソリューションは、元のコレクションが変更されたときに意味が異なります。 List<TValue>コピーには変更内容が反映されませんが、Valuesプロパティで参照されるIList<TValue>プロパティは、別の変数に割り当てても変更内容を反映します。

+0

それはそれのように見える、ありがとう。タイマーが切れた後、答えが受け入れられました。 :) – Almo

+4

悪い、悪い '新しいリスト(sortedList.Values)'。誰もそれ以上プレイしたくない。 :-) – Jon

関連する問題