C# 通过id与linq连接集合
我有一个对象集合C# 通过id与linq连接集合,c#,linq,C#,Linq,我有一个对象集合 var myData = new[] { new { ID = "1285", COUNT = 45 }, new { ID = "1286", COUNT = 156 }, new { ID = "1287", COUNT = 965 } }; 我的另一个收藏来自另一个数据源,如下所示: var incomingData = new
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"
}
};
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();
我想用COUNT属性按Id更改传入数据
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循环。(
myData
和incomingData
收集长度可能不同)只需使用如下普通连接语句:
var incomingData = new[]
{
new {
ID = "1285",
LOCATION = "City-1"
},
new {
ID = "1286",
LOCATION = "City-2"
},
new {
ID = "1287",
LOCATION = "City-3"
}
};
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();
简单易读只需使用以下普通连接语句:
var incomingData = new[]
{
new {
ID = "1285",
LOCATION = "City-1"
},
new {
ID = "1286",
LOCATION = "City-2"
},
new {
ID = "1287",
LOCATION = "City-3"
}
};
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();
简单易读如果集合长度不同,那么一个集合中的元素在另一个集合中不会出现,该怎么办?只有匹配的项目才会出现?我明白了,谢谢:)我想我想我已经想得太多了!如果集合的长度不同,那么一个集合中没有出现在另一个集合中的元素会发生什么情况?只有匹配的项目才会出现?我明白了,谢谢:)我想我考虑得太多了!“简单易懂”-非常好!“简单易懂”-非常好!