我有2个清单。第一个是CountryId列表,看起来像这样
036
208个
999个
第二个列表是一个coundryId to Name列表,如下所示:
036,澳大利亚
208,丹麦
380,意大利
578,NORWAY
结果如下:
澳大利亚
丹麦
身份证明(999)
如何制作解决此问题的linq查询?
答案 0 :(得分:0)
解决方案可能是实现左外连接
这是一个带有示例的资源 - How to: Perform Left Outer Joins (C# Programming Guide)
DefaultIfEmpty()
将是您未知的国家/地区
答案 1 :(得分:0)
使用LinqPad演示代码的一小部分 试试这个解决方案:
List<string> ids = new List<string>(){"036","208","999"};
Dictionary<string,string> data = new Dictionary<string,string>(){
{"036","AUSTRALIA"}, {"208","DENMARK"},
{"380","ITALY"},{"578","NORWAY"}};
var res = from id in ids
from d in data
where id == d.Key
select d.Value;
res = res.Union(from id in ids
where !(from d in data select d.Key).Contains(id)
select "UNKNOWN ID ("+id+")");
res.Dump();