【发布时间】:2016-06-28 09:34:46
【问题描述】:
我已经搜索但没有找到答案,可能是因为这个问题不容易描述。
例如在 WPF 中,我有一个模型Test,和一个List<Test> lst,然后必须构造一个ObservableCollection<TestViewModel> ObsTests。可能有两种方法:
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强>)
【问题讨论】:
-
提示:如果您有性能问题;然后开始分析。如果您没有性能问题;然后专注于编写易于阅读的代码。
-
我有性能问题,但是组合太多,例如添加并行,我认为这是一个对所有开发人员都很有价值的常见问题。
-
第一种和第二种方法在性能上是相同的。当您将集合传入 ObservableCollection 时,它会在 ctor 内部执行 foreach 循环。
-
@Carl 来自 nopeflow 的回答,我现在也知道了……谢谢
标签: c# performance task-parallel-library observablecollection