Skip to content

[doc-sync] Fix three inaccuracies in README DynamicData operator section #33

Description

@github-actions

Caution

Protected files were modified in this change.
This pull request is in request_review mode and requires explicit human scrutiny before merge.

Protected files: README.md

What changed

Three inaccuracies in README.md's Reactive Collections (R3Ext.DynamicData) section, identified by cross-referencing the documentation against the actual source code and docs/LibraryParity.md.

1. SortExpressionComparer<T> code example — non-existent type

The quick-start code snippet used SortExpressionComparer<Person>.Ascending(p => p.Name):

cache.Connect()
    .Filter(p => p.IsActive)
    .Sort(SortExpressionComparer<Person>.Ascending(p => p.Name))  // ← doesn't compile
    ...

SortExpressionComparer<T> is explicitly listed in docs/LibraryParity.md Known Gaps as not ported — the Sort operators accept IComparer<T> directly. Fixed to use Comparer<T>.Create(...), the recommended pattern per the parity doc.

2. SortAsync in the operator table — operator does not exist

The table listed Sort, SortAsync under Sorting. There is no SortAsync method anywhere in R3Ext.DynamicData. The fused sort+bind operator that does exist is SortAndBind (which has its own entry in docs/MigrationMatrix.md). Fixed to Sort, SortAndBind.

3. MergeChangeSetMergeChangeSets — wrong method name

The table listed MergeChangeSet (singular). The actual public method in R3Ext.DynamicData/List/ObservableListEx.MergeChangeSets.cs is MergeChangeSets (plural).

Source correlation

No commits landed on main in the past 7 days; these pre-existing inaccuracies were surfaced by auditing the current codebase state against each documentation file. The SortExpressionComparer issue predates the June 12 rename commit and was never corrected.

Generated by 📚 Documentation Sync · sonnet46 2.6M ·


Note

This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch doc-sync/fix-readme-inaccuracies-bebd7e981ca9b714.

Click here to create the pull request

To fix the permissions issue, go to SettingsActionsGeneral and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ

Show patch preview (50 of 50 lines)
From be505b23b3fa2db6d84669c2231e6f2e82074fb3 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com>
Date: Sun, 28 Jun 2026 09:50:48 +0000
Subject: [PATCH] docs: fix three inaccuracies in README DynamicData section
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Replace non-existent SortExpressionComparer<T> in code example with
  Comparer<T>.Create(...) — the supported pattern per LibraryParity.md
  Known Gaps (SortExpressionComparer was never ported)
- Replace SortAsync with SortAndBind in the operator table — SortAsync
  does not exist; SortAndBind is the fused sort+bind operator that does
- Fix MergeChangeSet → MergeChangeSets to match the actual method name

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 9fbbfc7..814f48c 100644
--- a/README.md
+++ b/README.md
@@ -113,7 +113,7 @@ var cache = new SourceCache<Person, int>(p => p.Id);
 // Observe changes with automatic caching
 cache.Connect()
     .Filter(p => p.IsActive)
-    .Sort(SortExpressionComparer<Person>.Ascending(p => p.Name))
+    .Sort(Comparer<Person>.Create((a, b) => string.Compare(a.Name, b.Name, StringComparison.Ordinal)))
     .Transform(p => new PersonViewModel(p))
     .Bind(out var items)  // Bind to ObservableCollection
     .Subscribe();
@@ -139,10 +139,10 @@ cache.Connect()
 | ------------------- | ---------------------------------------------- |
 | **Filtering**       | `Filter`, `FilterOnObservable`, `AutoRefresh`  |
 | **Transformation**  | `Transform`, `TransformMany`, `TransformAsync` |
-| **Sorting**         | `Sort`, `SortAsync`                            |
+| **Sorting**         | `Sort`, `SortAndBind`                          |
 | **Grouping**        | `Group`, `GroupWithImmutableState`, `GroupOn`  |
 | **Aggregation**     | `Count`, `Sum`, `Avg`, `Min`, `Ma
... (truncated)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions