Transformations 1.0.0

.NET Core 3.1
dotnet add package Transformations --version 1.0.0
NuGet\Install-Package Transformations -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Transformations" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Transformations --version 1.0.0
#r "nuget: Transformations, 1.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Transformations as a Cake Addin
#addin nuget:?package=Transformations&version=1.0.0

// Install Transformations as a Cake Tool
#tool nuget:?package=Transformations&version=1.0.0

New .Net Core version of Transformations Type Conversion library.

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp3.1
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.1

    • 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.0.0 537 3/25/2020
0.0.145 2,412 7/4/2017
0.0.144 2,297 5/19/2017
0.0.143 2,226 5/18/2017
0.0.142 2,226 5/16/2017
0.0.140 2,670 11/4/2016
0.0.139 2,551 11/4/2016
0.0.138 2,505 11/3/2016
0.0.137 2,487 11/3/2016
0.0.136 2,529 11/3/2016
0.0.135 2,482 11/2/2016
0.0.134 2,428 11/2/2016
0.0.133 2,463 11/2/2016
0.0.132 2,457 11/2/2016
0.0.131 2,486 11/2/2016
0.0.130 2,345 11/2/2016
0.0.129 2,404 12/14/2015
0.0.128 2,351 12/11/2015
0.0.127 2,286 12/10/2015
0.0.126 2,412 12/9/2015
0.0.125 2,345 11/20/2015
0.0.124 2,342 11/20/2015
0.0.123 2,338 11/20/2015
0.0.122 2,346 11/20/2015
0.0.121 2,310 11/20/2015
0.0.120 2,346 11/20/2015
0.0.119 2,361 11/17/2015
0.0.118 2,394 11/17/2015
0.0.117 2,377 11/17/2015
0.0.116 2,361 11/17/2015
0.0.115 2,326 11/17/2015
0.0.114 2,635 11/16/2015
0.0.113 2,310 11/16/2015
0.0.112 2,476 11/16/2015
0.0.111 2,350 11/12/2015
0.0.110 2,305 11/12/2015
0.0.109 2,319 11/3/2015
0.0.108 2,300 11/3/2015
0.0.107 2,305 11/3/2015
0.0.106 2,310 11/2/2015
0.0.105 2,291 11/2/2015
0.0.104 2,288 10/30/2015
0.0.103 2,294 10/30/2015
0.0.102 2,280 10/30/2015
0.0.101 2,278 10/30/2015
0.0.100 2,276 10/30/2015
0.0.99 2,283 10/23/2015
0.0.98 2,283 10/23/2015
0.0.97 2,275 10/19/2015
0.0.96 2,307 10/16/2015
0.0.95 2,320 10/16/2015
0.0.94 2,273 10/16/2015
0.0.93 2,274 10/16/2015
0.0.92 2,280 10/13/2015
0.0.91 2,302 10/13/2015
0.0.90 2,287 10/13/2015
0.0.89 2,361 9/16/2015
0.0.88 2,339 9/16/2015
0.0.87 2,354 8/20/2015
0.0.86 2,277 8/17/2015
0.0.85 2,610 8/6/2015
0.0.84 2,445 7/29/2015
0.0.83 2,441 7/29/2015
0.0.82 2,457 7/29/2015
0.0.81 2,412 7/28/2015
0.0.80 2,427 7/28/2015
0.0.79 2,384 7/27/2015
0.0.78 2,379 7/20/2015
0.0.77 2,415 7/20/2015
0.0.76 2,310 7/10/2015
0.0.75 2,292 7/10/2015
0.0.74 2,329 7/2/2015
0.0.73 2,330 7/2/2015
0.0.72 2,311 6/29/2015
0.0.71 2,277 6/29/2015
0.0.70 2,287 6/24/2015
0.0.69 2,318 6/23/2015
0.0.68 2,354 6/23/2015
0.0.67 2,304 6/22/2015
0.0.66 2,302 6/22/2015
0.0.65 2,305 6/5/2015
0.0.64 2,349 6/4/2015
0.0.63 2,305 6/4/2015
0.0.62 2,318 6/3/2015
0.0.61 2,365 6/2/2015
0.0.60 2,300 6/2/2015
0.0.59 2,447 6/1/2015
0.0.58 2,308 6/1/2015
0.0.57 2,467 6/1/2015
0.0.56 2,642 6/1/2015
0.0.55 2,298 5/29/2015
0.0.53 2,312 5/27/2015
0.0.52 2,282 5/27/2015
0.0.51 2,294 5/22/2015
0.0.50 2,279 5/21/2015
0.0.49 2,302 5/20/2015
0.0.48 2,301 5/20/2015
0.0.47 2,338 5/20/2015
0.0.46 2,304 5/20/2015
0.0.45 2,284 5/19/2015
0.0.44 2,310 5/19/2015
0.0.43 2,301 5/15/2015
0.0.42 2,277 5/14/2015
0.0.41 2,289 5/13/2015
0.0.40 2,307 5/12/2015
0.0.39 2,306 5/11/2015
0.0.38 2,299 5/7/2015
0.0.37 2,303 5/7/2015
0.0.36 2,273 5/7/2015
0.0.35 2,319 5/7/2015
0.0.34 2,282 5/7/2015
0.0.33 2,379 5/7/2015
0.0.32 2,302 5/6/2015
0.0.31 2,371 5/6/2015
0.0.30 2,281 5/6/2015
0.0.29 2,283 5/6/2015
0.0.28 2,391 5/6/2015
0.0.27 2,392 5/5/2015
0.0.26 2,289 5/5/2015
0.0.25 2,422 4/27/2015
0.0.24 2,449 4/24/2015
0.0.23 2,694 4/23/2015
0.0.22 2,531 4/2/2015
0.0.21 2,323 4/2/2015
0.0.20 2,306 4/1/2015
0.0.19 2,327 3/31/2015
0.0.18 2,372 3/31/2015
0.0.17 2,334 3/31/2015
0.0.16 2,307 3/31/2015
0.0.15 2,271 3/31/2015
0.0.14 2,322 3/31/2015
0.0.13 2,282 3/31/2015
0.0.12 2,289 3/30/2015
0.0.11 2,308 3/30/2015
0.0.10 2,302 3/30/2015

* You don't need to reference the transformations namespace with Using statement (type conversions are meant to be universal if you choose to use this).

Generally you would just do:

 var newValue = oldValue.ConvertTo&lt;newType&gt;(optionalDefaultValue);

* You can use TryConvertTo if you need to get the result of the conversion process.

* You can do some conversions on DataTables and Lists , for example convert a data table to an object list, if the names of the columns match the object properties.

* The date conversion is set to British date format by default, not the project's current format. This may have to change to make the library more "universal".

* From some basic tests I have performed on universal type converter and this library, I found it to be a bit faster than the universal type converter...

********************************************
Some examples of use:
********************************************
string valueInput = "7F8C14B6-B3A8-4F71-8EFC-E5A7B35923B6";
Guid actual = valueInput.ConvertTo&lt;Guid&gt;(Guid.Empty);
// where Guid.Empty is the default value if the conversion fails.
// -----------------------------------------------
string valueInput = "0.1";
float actual = valueInput.ConvertTo&lt;float&gt;(0.0f);
// where 0.0f is the default value if the conversion fails.
// result = 0.1f;
// -----------------------------------------------
string valueInput = "15/02/2014";
DateTime actual = valueInput.ConvertTo&lt;DateTime&gt;(new DateTime(2000, 01, 01));
// where 2000-01-01 is the default value if the conversion fails.
// result = new DateTime(2014, 02, 15);
// -----------------------------------------------
float? f = 123.524f;
int? i = f.ConvertTo&lt;int&gt;();
// result = 124;
// -----------------------------------------------

* You can convert date to 'excel'-type value:
DateTime d = new DateTime(2005, 5, 5);
d.ToDouble();
// or d.ToInt();

List conversions examples:
// -----------------------------------------------
List&lt;int&gt; l1 = new List&lt;int&gt;(new int[] { 2, 3, 4 });
List&lt;float&gt; l2 = l1.ConvertToList&lt;int, float&gt;();
// -----------------------------------------------



**************************************************

Some additional helper methods are added as extensions as well:

// -----------------------------------------------

*Proper Case*

string name = "mr john smith";
name.ProperCase();
// result = "Mr John Smith";

// -----------------------------------------------

*Insert Spaces*

string name = "MrJohnSmith";
name.InsertSpaces();
// result = "Mr John Smith";

// -----------------------------------------------

*Remove Chars* - removes multiple instances of the same string pattern from the string.

string name = "Mr John John Smith";
name.RemoveChars("John ");
// result = "Mr Smith";

// -----------------------------------------------

*Replace Ex* - replace multiple instances of the same string pattern in the string.
string s = "12345678901234567890";
s.ReplaceEx("2", "X");
// result = "1X345678901X34567890";

// -----------------------------------------------

*Is Date* - check if string is a date! assumes en-Gb as default culture at present..

string s = "14/02/2014";
if (IsDate(s))
{ ... }
if (IsDate(s, "en-GB"))
{ ... }

// -----------------------------------------------

.ToSqlParameter() extension methods make it easier to effectively make the swift conversion to SqlParameters from most types, but please always check that the correct SqlDbType is supplied...

For example, if you wanted to supply myChar parameter to a stored procedure - a char conversion could be:

char c = 'a';
c.ToSqlParameter('myChar');
- and you would probably want to add SqlParameter to the list of parameters.

When converting a string to a varchar / nvarchar, a size of the string is required. It's usually the best practice to supply the string size to avoid runtime errors.

I'm thinking of adding a completely separate validation method to SqlParameter list, which will test that each conversion can be performed correctly.

// -----------------------------------------------


Added DataTable.HasRows()
// ie: dataTable != null &amp;&amp; dataTable.Rows.Count &gt; 0

Added DataRow.GetValue&lt;T&gt;()
- Gets the value as required type.

// -----------------------------------------------

New:

Added Some Enum extensions, eg:

YourEnum.EnumElement.ToByte()
// gives an int enum for this enum

Same applies to
[...].ToDecimal()
[...].ToDouble()
[...].ToInt()
[...].ToLong()
etc.