یک نمونه کد از ترکیب Iterator Pattern و Patter Mantching در سی شارپ که در gist گذاشتم.
public static IEnumerable<T> AddRangeImmuted<T>(this IEnumerable<T>? source, IEnumerable<T>? items) { return (source, items) switch { (null, null) => Enumerable.Empty<T>(), (_, null) => source, (null, _) => items, (_, _) => addRangeImmutedIterator(source, items) }; static IEnumerable<T> addRangeImmutedIterator(IEnumerable<T> source, IEnumerable<T> items) { foreach (var item in source) { yield return item; } foreach (var item in items) { yield return item; } } }
به نظرتون چطوره؟