private IEnumerable <JoinBuilder <TEntity> > ConcatUniqueJoins(params JoinBuilder <TEntity>[][] joins) { IEnumerable <JoinBuilder <TEntity> > result = new JoinBuilder <TEntity> [0]; foreach (var joinArray in joins) { if (joinArray == null || joinArray.Length < 1) { continue; } result = result.Concat(joinArray); } return(result .GroupBy(join => join.Specification) .Select(joinGroup => joinGroup.First()) .ToArray()); }