{"id":328,"date":"2022-03-06T03:08:15","date_gmt":"2022-03-05T18:08:15","guid":{"rendered":"http:\/\/milennium9.godohosting.com\/wordpress\/?p=328"},"modified":"2022-03-06T03:13:15","modified_gmt":"2022-03-05T18:13:15","slug":"c-linq-left-outer-join-with-method-chain","status":"publish","type":"post","link":"http:\/\/milennium9.godohosting.com\/wordpress\/?p=328","title":{"rendered":"[C#] Linq &#8211; Left outer join (with Method chain)"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>var characters = new&#91;] {\n    new Character { name = \"Hero\", inventory_id    = 1 },\n    new Character { name = \"Heroine\", inventory_id = 2 },\n};\n\nvar items = new&#91;] {\n    new Item { inventory_id = 2, name = \"Weapon\" },\n    new Item { inventory_id = 2, name = \"Armor\" },\n};\n\nvar joined = characters\n    .GroupJoin(\n        items,\n        c =&gt; c.inventory_id,\n        i =&gt; i.inventory_id,\n        (character, item) =&gt; (character, item: <strong>item.DefaultIfEmpty()<\/strong>));\n\nforeach (var elem in joined) {\n    foreach (var ci in elem.item) {\n        WriteLine($\"{elem.character.name} has {ci?.name ?? \"no item\"}\");\n    }\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hero has no item\nHeroine has Weapon\nHeroine has Armor\n<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Output<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0},"categories":[5],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5PypW-5i","_links":{"self":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/328"}],"collection":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=328"}],"version-history":[{"count":5,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/328\/revisions"}],"predecessor-version":[{"id":338,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/328\/revisions\/338"}],"wp:attachment":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}