Description
For historical reasons, some of MoreLinq's method names conflict with System.Linq.Enumerable's, causing compiler errors like the following from Issue 527:
The call is ambiguous between the following methods or properties: 'System.Linq.Enumerable.Append(System.Collections.Generic.IEnumerable, TSource)' and 'MoreLinq.MoreEnumerable.Append(System.Collections.Generic.IEnumerable, T)'
This can often be resolved by using a static import of one of MoreLinq's *Extension classes, such as MoreLinq.Extensions.AppendExtension
.
However, having to manually do a static import rather than being able to continue to use tooling's auto-import (such as provided by Visual Studio or ReSharper), while it makes a work-around possible, is still a big pain and a slow-down. Furthermore it seems that some cases of using methods from both Linq and MoreLinq in the same file are only resolvable by calling the extension method from the static class name directly, rather than using it as an extension of IEnumerable. These problems are said to be rare, but I have ran into it several times just in the past few weeks (perhaps because I do a lot of functional-style C# programming...which is exactly why I love MoreLinq!)
For this reason I propose that in the next major version of MoreLinq, the conflicting method names be renamed where they may cause this conflict. (The same thing could happen again in the future if more Enumerable methods are added to System.Linq, but at least the conflicts will be reduced, and for a while exhaustively.)