小编Kef*_*fka的帖子

如何使用 join 加速这个 LINQ 查询?

我有两个对象模型的集合,我正在比较每个属性的不平等。

ObservableCollection<LayerModel> SourceDrawingLayers
Run Code Online (Sandbox Code Playgroud)

...和:

ObservableCollection<LayerModel> TargetDrawingLayers
Run Code Online (Sandbox Code Playgroud)

我收到了关于创建非 equijoin LINQ 查询的很好的建议,并且让它在我的应用程序中发挥了很大的作用,但现在我想加快速度:

var onOffQuery = from target in TargetDrawingLayers
                 from source in SourceDrawingLayers
                 where target.Name == source.Name && target.OnOff != source.OnOff
                 select target;
Run Code Online (Sandbox Code Playgroud)

我的理解是,我将查询乘以源图形*中的项目*数、目标图形中的项目数和我填充到的目标图形数TargetDrawingLayers

我想加速这个操作,Join但我遇到!=了它的一部分问题。

我玩弄这个:

var newQuery = from source in SourceDrawingLayers
    join target in TargetDrawingLayers
    on target.name
    where target.OnOff != source.OnOff
    select target;
Run Code Online (Sandbox Code Playgroud)

但我在语法上挣扎。有人可以用它让我走上正轨吗?

此外,这甚至会是显着的性能改进吗?

c# linq observablecollection

3
推荐指数
1
解决办法
122
查看次数

标签 统计

c# ×1

linq ×1

observablecollection ×1