CollectionTracking 1.0.0
dotnet add package CollectionTracking --version 1.0.0
NuGet\Install-Package CollectionTracking -Version 1.0.0
<PackageReference Include="CollectionTracking" Version="1.0.0" />
<PackageVersion Include="CollectionTracking" Version="1.0.0" />
<PackageReference Include="CollectionTracking" />
paket add CollectionTracking --version 1.0.0
#r "nuget: CollectionTracking, 1.0.0"
#:package CollectionTracking@1.0.0
#addin nuget:?package=CollectionTracking&version=1.0.0
#tool nuget:?package=CollectionTracking&version=1.0.0
CollectionTracking
Goal
This package was developed to interpret a series of immutable lists (from a business layer) as one mutable lists (in a presentation layer).
In other words, convert IObservable<IEnumerable<T>> to ObservableCollection<T>.
Usage
1. Get the differences
Use CollectionTracker.GetOperations to compare 2 enumerables.
using CollectionTracking;
// (...)
var source = new[] { "B", "C", "A" };
var target = new[] { "A", "B", "C", "D" };
var operations = CollectionTracker.GetOperations(source, target);
foreach (var operation in operations)
{
Console.WriteLine(operation);
}
This code prints the following.
Move 'A' from [2] to [0]
Insert 'D' at [3]
2. Use the differences to modify an IList
Use CollectionTracker.ApplyOperations to apply a series of CollectionOperations on an IList.
var list = source.ToList();
list.ApplyOperations(operations);
This code initializes the list variable with the content being [BCA].
The ApplyOperations modifies that list so that it becomes [ABCD].
This is very useful when manipulating an ObservableCollection bound to a UI component (such as ItemsControl.ItemsSource).
CollectionTracking.DynamicData
Goal
Expose conversion methods to relevant types from the DynamicData library.
Usage
using CollectionTracking;
using DynamicData;
// (...)
var source = new[] { "B", "C", "A" };
var target = new[] { "A", "B", "C", "D" };
var operations = CollectionTracker.GetOperations(source, target);
// Convert all changes.
IChangeSet<string> changeSet = operations.ToChangeSet();
// Convert a single change.
Change<string> change = operations[0].ToChange();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on CollectionTracking:
| Package | Downloads |
|---|---|
|
Chinook.DynamicMvvm.CollectionTracking
Chinook.DynamicMvvm is a collection of extensible MVVM libraries for declarative ViewModels. |
|
|
CollectionTracking.DynamicData
Convert collection operations from CollectionTracking into IChangeSet or Change from DynamicData. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 82,669 | 5/8/2022 |