CLSS.ExtensionMethods.Object.ToStringFormattedBy
1.0.0
See the version list below for details.
dotnet add package CLSS.ExtensionMethods.Object.ToStringFormattedBy --version 1.0.0
NuGet\Install-Package CLSS.ExtensionMethods.Object.ToStringFormattedBy -Version 1.0.0
<PackageReference Include="CLSS.ExtensionMethods.Object.ToStringFormattedBy" Version="1.0.0" />
paket add CLSS.ExtensionMethods.Object.ToStringFormattedBy --version 1.0.0
#r "nuget: CLSS.ExtensionMethods.Object.ToStringFormattedBy, 1.0.0"
// Install CLSS.ExtensionMethods.Object.ToStringFormattedBy as a Cake Addin
#addin nuget:?package=CLSS.ExtensionMethods.Object.ToStringFormattedBy&version=1.0.0
// Install CLSS.ExtensionMethods.Object.ToStringFormattedBy as a Cake Tool
#tool nuget:?package=CLSS.ExtensionMethods.Object.ToStringFormattedBy&version=1.0.0
CLSS.ExtensionMethods.Object.ToStringFormattedBy
Problem
System.String.Format
fulfills its role well in a general context. However, its syntax does not particularly lend itself well to functional-style call chain.
using Newtonsoft.Json.Linq;
var queriedNode = JToken.Parse(rawJSON)
.SelectToken(jsonPath)
.Value<bool>();
var deprecationLabel = String.Format("This is an deprecated entry? {0}", queriedNode);
Solution
ToStringFormattedBy
is an extension method created with functional syntax in mind. In your code, it conveys the intent of transforming an object into string form in a particular format more expressively.
using CLSS;
using Newtonsoft.Json.Linq;
var deprecationLabel = JToken.Parse(rawJSON)
.SelectToken(jsonPath)
.Value<bool>()
.ToStringFormattedBy("This is an deprecated entry? {0}");
The format string taken in by ToStringFormattedBy
follows the same rules and syntax of composite formatting. Follow that link to learn more.
ToStringFormattedBy
also takes in trailing variadic arguments. Since the source object calling ToStringFormattedBy
will replace format item at index 0, trailing arguments following the format string will start at format index 1.
using CLSS;
// convert into some kind of subtitles markup
dialogue.ToStringFormattedBy("<color={1}>{2}</color>: {0}", character.ColorCode, character.Name);
Optionally, ToStringFormattedBy
also takes in an IFormatProvider
if passed in before the format string. This overload also takes in trailing variadic arguments.
using CLSS;
today.ToStringFormattedBy(customCultureInfo, "Today is {0}");
You can also call ToStringFormattedBy
on any ICollection
or ICollection<T>
. The format items in the format string will map to elements in the source array in order of index number. Any trailing variadic argument the overloads for array take in will map to format items starting at the index number equivalent to the source collection's length.
using CLSS;
var versionDigits = new int[] { 1, 5, 3 };
var versionString = versionDigits.ToStringFormattedBy("{0}.{1}.{2}"); // "1.5.3"
This package is a part of the C# Language Syntactic Sugar suite.
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. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.0 is compatible. netstandard1.1 was computed. netstandard1.2 was computed. netstandard1.3 was computed. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net45 was computed. net451 was computed. net452 was computed. net46 was computed. 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 | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Windows Phone | wp8 was computed. wp81 was computed. wpa81 was computed. |
Windows Store | netcore was computed. netcore45 was computed. netcore451 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.0
- NETStandard.Library (>= 1.6.1)
-
.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.