diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index e2abde7..d490252 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -10,10 +10,11 @@
true
snupkg
true
+ true
-
-
-
+
+ latest-Recommended
+
diff --git a/src/TimeZoneConverter.DataBuilder/DataExtractor.cs b/src/TimeZoneConverter.DataBuilder/DataExtractor.cs
index 7aa7007..129e709 100644
--- a/src/TimeZoneConverter.DataBuilder/DataExtractor.cs
+++ b/src/TimeZoneConverter.DataBuilder/DataExtractor.cs
@@ -77,13 +77,14 @@ public static List LoadAliases(string cldrDirectoryPath, IDictionary LoadTzdbLinks(string tzdbDirectoryPath
foreach (var file in dataFiles)
{
var lines = File.ReadLines(Path.Combine(tzdbDirectoryPath, file));
- foreach (var line in lines.Where(x => x.StartsWith("Link")))
+ foreach (var line in lines.Where(x => x.StartsWith("Link", StringComparison.Ordinal)))
{
var parts = line.Trim().Split(Array.Empty(), StringSplitOptions.RemoveEmptyEntries);
var target = parts[1];
@@ -125,7 +126,7 @@ public static IList LoadTzdbTerritories(string tzdbDirectoryPath)
{
var data = new Dictionary>();
var lines = File.ReadLines(Path.Combine(tzdbDirectoryPath, "zone.tab"));
- foreach (var line in lines.Where(x => !x.StartsWith("#")))
+ foreach (var line in lines.Where(x => !x.StartsWith('#')))
{
var parts = line.Trim().Split('\t');
var territory = parts[0];
diff --git a/src/TimeZoneConverter.DataBuilder/Downloader.cs b/src/TimeZoneConverter.DataBuilder/Downloader.cs
index 06a7c0d..07f029d 100644
--- a/src/TimeZoneConverter.DataBuilder/Downloader.cs
+++ b/src/TimeZoneConverter.DataBuilder/Downloader.cs
@@ -31,7 +31,7 @@ public static async Task DownloadRailsTzMappingAsync(string dir)
public static string GetTempDir()
{
- return Path.GetTempPath() + Path.GetRandomFileName().Substring(0, 8);
+ return string.Concat(Path.GetTempPath(), Path.GetRandomFileName().AsSpan(0, 8));
}
private static async Task DownloadAsync(string url, string dir)
diff --git a/src/TimeZoneConverter.Posix/PosixTimeZone.cs b/src/TimeZoneConverter.Posix/PosixTimeZone.cs
index 84ddb0c..3c4e12e 100644
--- a/src/TimeZoneConverter.Posix/PosixTimeZone.cs
+++ b/src/TimeZoneConverter.Posix/PosixTimeZone.cs
@@ -11,6 +11,8 @@ namespace TimeZoneConverter.Posix;
///
public static class PosixTimeZone
{
+ private static readonly char[] PosixAbbreviationSplitChars = {'+', '-'};
+
///
/// Generates a POSIX time zone string from a object, for the current year.
/// Note - only uses only the property from the object.
@@ -130,7 +132,7 @@ public static string FromIanaTimeZoneName(string timeZoneName, int year)
private static string GetPosixAbbreviation(string abbreviation)
{
- return abbreviation.IndexOfAny(new[] {'+', '-'}) != -1 ? "<" + abbreviation + ">" : abbreviation;
+ return abbreviation.IndexOfAny(PosixAbbreviationSplitChars) != -1 ? "<" + abbreviation + ">" : abbreviation;
}
private static string GetPosixOffsetString(Offset offset)