I haven't tested but am concerned that CollectionTools.Concat( this IEnumerable<T> items, params T[] ts ), when called with a single param, could lead to ambiguity with Enumerable.Concat, or at a minimum lead to mistakenly passing a single object where a collection is meant, or vice versa. I suggest removing this method and instead using chained Enumerable.Append calls or passing an explicit array to Enumerable.Concat.
I haven't tested but am concerned that
CollectionTools.Concat( this IEnumerable<T> items, params T[] ts ), when called with a single param, could lead to ambiguity with Enumerable.Concat, or at a minimum lead to mistakenly passing a single object where a collection is meant, or vice versa. I suggest removing this method and instead using chainedEnumerable.Appendcalls or passing an explicit array toEnumerable.Concat.