【发布时间】:2014-02-15 12:49:12
【问题描述】:
您好,我是 c# 和 Linq 的新手。如果某个属性的值与另一个列表属性的值匹配,我正在尝试更新一个列表。
假设我有一个列表为firstlist
Name code
ABC 101
DEF 201
GHI 301
JKL 401
MNO 101
第二个列表为secondlist
description Code
IT 101
ADMIN 201
Develeopment 301
Testing 401
Service 501
我希望我的结果列表为
Name code
ABC 101 IT
DEF 201 ADMIN
GHI 301 Develeopment
JKL 401 Testing
MNO 101 IT
我试过这样的,
var query = firstlist.Select(x => { x.Code = 101; return x.Code.ToString()+"IT"; })
但是我想匹配来自secondlist 的代码来代替101 并且为了匹配代码我想用code+description 更新firstlist 代码我不知道该怎么做如果有人提出任何可以指导我的方式或链接,那就太好了。
*******更新* ******
我想说的是,正如@Sergey 建议的那样
from x in firstlist
join y in secondList
on x.code equals y.Code
select new {
x.Name,
code = String.Format("{0} {1}", y.Code, y.description)
}
我可以做这样的事情来代替它吗
from x in firstlist
join y in secondList
on x.code equals y.Code
select x.code = String.Format("{0} {1}", y.Code, y.description)
这只会更新现有的listone,而不是为每个匹配项创建新实体
【问题讨论】:
-
如果您有多个匹配项怎么办?或者如果某个值没有匹配项?
-
@SergeyBerezovskiy 不。我在
secondlist中有不同的值。假设SecondList是主表数据,firstlist是明细表数据
标签: c# performance linq c#-4.0