【问题标题】:Join collections by id with linq [duplicate]使用 linq 按 id 加入集合 [重复]
【发布时间】: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 集合长度可能不同)

【问题讨论】:

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

标签: c# linq


【解决方案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();

简单、易读、易读

【讨论】:

  • “简单、易读、易读” - 非常好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多