Skip to content

Instantly share code, notes, and snippets.

@kitlabcode
kitlabcode / LINQ Left Join Extension Method
Created May 23, 2015 23:59
LINQ Left Join Extension Method
public static IEnumerable<TResult> LeftJoin<TSource, TInner, TKey, TResult>(this IEnumerable<TSource> source,
IEnumerable<TInner> inner,
Func<TSource, TKey> primaryKey,
Func<TInner, TKey> foreignKey,
Func<TSource, TInner, TResult> resultCollection)
{
var result = from s in source
join i in inner
on primaryKey(s) equals foreignKey(i) into joinData
from left in joinData.DefaultIfEmpty()
@kitlabcode
kitlabcode / LinqJoinExtensions
Last active August 29, 2015 14:21
Six Extension Methods for LINQ Joins
public static class LinqExtension
{
public static IEnumerable<TResult> LeftJoin<TSource, TInner, TKey, TResult>(this IEnumerable<TSource> source,
IEnumerable<TInner> inner,
Func<TSource, TKey> primaryKey,
Func<TInner, TKey> foreignKey,
Func<TSource, TInner, TResult> resultCollection)
{
var result = from s in source
join i in inner