我试图用两个Dictionary<int, string>
对象做一个左外连接。这些是对象:
var leftSet = new Dictionary<int, string>()
{
{ 1, "Michael"},
{ 2, "John" },
{ 3, "Bill" }
};
var rightSet = new Dictionary<int, string>()
{
{ 1, "Another Michael"},
{ 3, "Another Bill" },
{ 4, "Tony" }
};
我这样写查询:
var queryResult = from leftElements in leftSet
join rightElements in rightSet
on leftElements.Key equals rightElements.Key into joinResult
from result in joinResult
select new { leftElements.Key, result.Value };
这将导致内部联接而不是我想要的左外部联接。我知道我需要先获取
leftElements.Key
,然后它才能成为joinResult
的一部分,但是之后我将不知道如何编写select
语句。任何帮助,将不胜感激,谢谢。
最佳答案
更改
from result in joinResult
至:
from result in joinResult.DefaultIfEmpty()
完成左外部联接。
其他所有内容都可以保持不变。
关于c# - 使用LINQ在两个Dictionary <int,string>上向左连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58291916/