AhmadKamal.UiPath.DataMutator
1.1.0-beta
dotnet add package AhmadKamal.UiPath.DataMutator --version 1.1.0-beta
NuGet\Install-Package AhmadKamal.UiPath.DataMutator -Version 1.1.0-beta
<PackageReference Include="AhmadKamal.UiPath.DataMutator" Version="1.1.0-beta" />
<PackageVersion Include="AhmadKamal.UiPath.DataMutator" Version="1.1.0-beta" />
<PackageReference Include="AhmadKamal.UiPath.DataMutator" />
paket add AhmadKamal.UiPath.DataMutator --version 1.1.0-beta
#r "nuget: AhmadKamal.UiPath.DataMutator, 1.1.0-beta"
#:package AhmadKamal.UiPath.DataMutator@1.1.0-beta
#addin nuget:?package=AhmadKamal.UiPath.DataMutator&version=1.1.0-beta&prerelease
#tool nuget:?package=AhmadKamal.UiPath.DataMutator&version=1.1.0-beta&prerelease
AhmadKamal.UiPath.DataMutator
A powerful, lightweight extension package designed specifically for UiPath developers. It allows you to seamlessly mutate DataTable rows and IEnumerable collections using inline Action (VB.NET Sub) delegates.
This package elegantly bypasses the notorious UiPath Expression Tree error BC36534 (Expression cannot be converted into an expression tree) that occurs when trying to assign values directly inside an Assign activity lambda.
🚀 Features
- ListMutator: Update value types (like
Int32) and immutable reference types (likeString) within lists using an innovativeItemWrapper<T>. It returns a completely new sequence, ensuring functional purity. - DataTableMutator: Safely and cleanly update
DataRowfields across an entireDataTablein a single line, eliminating the need for bulkyFor Each Rowactivities. - UiPath Native Compatibility: Built to integrate perfectly with UiPath's VB.NET Expression Trees.
📦 Installation
- Open your UiPath Studio project.
- Click on Manage Packages in the ribbon.
- Select your designated NuGet source (or All Packages).
- Search for
AhmadKamal.UiPath.DataMutator. - Click Install and then Save.
💻 Usage & Examples (VB.NET)
1. Mutating a List of Strings / Value Types
When working with standard lists of strings or numbers, UiPath prevents direct assignments like x = "NewValue" inside an Assign activity. We solve this by wrapping items in an ItemWrapper.
Scenario: We have a list of names, and we want to append " _Developer" to each name.
- Activity:
Assign - To:
myList(Type: List(Of String)) - Value:
myList.ListMutator(Sub(w) w.Value = w.Value + " _Developer").ToList()
How it works:
wrepresents theItemWrapper. Settingw.Valueis treated as a property setter, which UiPath's Expression Tree accepts without throwing theBC36534error..ToList()materializes the new mutated list.
2. Mutating a DataTable
You can directly mutate rows in an entire DataTable efficiently.
Scenario: We want to update the "Status" column to "Processed" for all rows in a DataTable.
- Activity:
Assign - To:
myDataTable(Type: DataTable) - Value:
myDataTable.DataTableMutator(Sub(row) row("Status") = "Processed")
How it works: The mutator iterates over the rows and applies your VB.NET
Subdirectly to eachDataRowreference.
⚙️ Compatibility
- Compatible with Windows and Windows-Legacy projects in UiPath Studio.
- Built on .NET Standard 2.0 / .NET 6.0 / .NET 8.0 (Verify based on your target framework).
📄 License
This project is licensed under the MIT License.
| 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
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0-beta | 61 | 7/24/2026 |