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)