Skip to content

Ensure Ix-only AverageAsync etc correctly resolved #2248

@idg10

Description

@idg10

Ix's System.Linq.Async (deprecated by .NET 10's introduction of System.Linq.AsyncEnumerable) offers overloads of certain operators that are not replicated by .NET 10. For example, there are overloads of AverageAsync that take projection callbacks.

We need to ensure that we have dealt with these completely and consistently. In particular:

  • move them to System.Interactive.Async in case where we are retaining the functionality
  • ensure any Obsolete attributes provide correct guidance

The current draft PR that paves the way for .NET 10's System.Linq.AsyncEnumerable to replace Ix's System.Linq.Async might have some inconsistencies. Some of the Obsolete annotations tell you to replace a single call to a projecting form with a combination of Select and the non-projecting form.

Either we should move all such overloads into System.Interactive.Async or we should mark them as obsolete and tell people to use Select to fill in the missing functionality, but we should not have mixture where we move these overloads for some operators, and tell people to do something else for other operators. We need to pick one strategy and use it consistently.

(Note that in some cases, .NET 10 offers the equivalent functionality through a different method. E.g. MaxBy replaces some Max overloads.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions