私は検索しましたが見つかりませんでした。おそらくこの質問は説明しにくいためです。 例えばWPFでは、私はモデルTest
とList<Test> lst
を持っていますので、ObservableCollection<TestViewModel> ObsTests
を構築しなければなりません。そこ多分2つの方法:C#performance:コンストラクタまたはループを使用して既存のアイテムで新しいコレクションを作成しますか?
var ObsTests = new ObservableCollection<TestViewModel>(lst .Select(t = > new TestViewModel(t));
var ObsTests = new ObservableCollection<TestViewModel>(); foreach(var test in lst) { ObsTests.Add(new TestViewModel(test)); }
パフォーマンスに優れている私に教え、そしてAsParallel
が利用可能な場合は私に最善の解決策を教えてください(などはスレッドセーフのObservableCollectionはありますか?私は使用しています.net 4.5)
ヒント:パフォーマンスの問題がある場合。プロファイリングを開始します。パフォーマンスに関する問題がない場合は、読みやすいコードを書くことに焦点を合わせます。 – GhostCat
私はパフォーマンス上の問題がありますが、組み合わせが多すぎて、たとえば並列に追加されています。すべての開発者にとって価値ある共通の問題だと思います。 –
第1の方法と第2の方法は同じ性能です。 ObservableCollectionにコレクションを渡すと、ctor内でforeachループが実行されます。 – Karolis