public Object merge(Object first, Object second) {List<T> outputList = new ArrayList<>();if (!(first instanceof List)) {outputList.add((T) first);} else {outputList.addAll((List<T>) first);}if (!(second instanceof List)) {outputList.add((T) second);} else {outputList.addAll((List<T>) second);}return outputList;}

public Object merge ( Object first , Object second ) { List < T > outputList = new ArrayList < > ( ) ; if ( ! ( first instanceof List ) ) { outputList . add ( ( T ) first ) ; } else { outputList . addAll ( ( List < T > ) first ) ; } if ( ! ( second instanceof List ) ) { outputList . add ( ( T ) second ) ; } else { outputList . addAll ( ( List < T > ) second ) ; } return outputList ; }
public override object Merge(object first, object second){IList<T> outputList = new JCG.List<T>();if (!(first is IList<T> firstList)){outputList.Add((T)first);}else{foreach (T value in firstList){outputList.Add(value);}}if (!(second is IList<T> secondList)){outputList.Add((T)second);}else{foreach (T value in secondList){outputList.Add(value);}}return outputList;}
