使用 linq 按 id 加入集合 [重复]

Posted

技术标签:

【中文标题】使用 linq 按 id 加入集合 [重复]【英文标题】:Join collections by id with linq [duplicate] 【发布时间】:2017-11-18 01:11:00 【问题描述】:

我有一个对象集合

var myData = new[]

    new 
        ID = "1285",
        COUNT = 45
    ,
    new 
        ID = "1286",
        COUNT = 156
    ,
    new 
        ID = "1287",
        COUNT = 965
    
;

我的另一个集合来自另一个像这样的数据源:

var incomingData = new[]

    new 
        ID = "1285",
        LOCATION = "City-1"
    ,
    new 
        ID = "1286",
        LOCATION = "City-2"
    ,
    new 
        ID = "1287",
        LOCATION = "City-3"
    
;

我想通过 ID 更改具有 COUNT 属性的传入数据。

var NewData = new[]

    new 
        ID = "1285",
        LOCATION = "City-1",
        COUNT = 45
    ,
    new 
        ID = "1286",
        LOCATION = "City-2",
        COUNT = 156
    ,
    new 
        ID = "1287",
        LOCATION = "City-3",
        COUNT = 965
    
;

如何使用 linq labda 函数做到这一点。我不想使用 foreach 循环。 (myDataincomingData 集合长度可能不同)

【问题讨论】:

如果集合的长度不同,一个集合中没有出现在另一个集合中的元素应该怎么办? 只有匹配的项目才会加入 我明白了,谢谢 :) 我想我想多了! 【参考方案1】:

只需像这样使用普通的连接语句:

var result= 
    (
        from data in myData
        join inData in incomingData
            on data.ID equals inData.ID
        select new
        
            data.ID,
            inData.LOCATION,
            data.COUNT
        
    ).ToList();

简单、易读、易读

【讨论】:

“简单、易读、易读” - 非常好!

以上是关于使用 linq 按 id 加入集合 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C# LINQ 组按属性集合,然后按列表定义的显式顺序对每个组进行排序[重复]

加入集合的 LINQ 更新

在Kotlin中按多个字段对集合进行排序[重复]

根据条件加入mongodb集合[重复]

通过LINQ将函数应用于集合的所有元素[重复]

MongoDb - “加入”集合[重复]