mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Clean up some core functionality
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace SabreTools.Core
|
namespace SabreTools.Core
|
||||||
{
|
{
|
||||||
@@ -8,7 +7,7 @@ namespace SabreTools.Core
|
|||||||
public static ConcurrentList<T> ToConcurrentList<T>(this IEnumerable<T> values)
|
public static ConcurrentList<T> ToConcurrentList<T>(this IEnumerable<T> values)
|
||||||
{
|
{
|
||||||
var list = new ConcurrentList<T>();
|
var list = new ConcurrentList<T>();
|
||||||
list.SetInternalList(values.ToList());
|
list.SetInternalList([.. values]);
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using SabreTools.Logging;
|
using SabreTools.Logging;
|
||||||
|
|
||||||
namespace SabreTools.Core.Tools
|
namespace SabreTools.Core.Tools
|
||||||
@@ -87,7 +86,7 @@ namespace SabreTools.Core.Tools
|
|||||||
|
|
||||||
// Try to get the mapping attribute
|
// Try to get the mapping attribute
|
||||||
MappingAttribute? attr = AttributeHelper<T>.GetAttribute(value);
|
MappingAttribute? attr = AttributeHelper<T>.GetAttribute(value);
|
||||||
if (attr?.Mappings == null || !attr.Mappings.Any())
|
if (attr?.Mappings == null || attr.Mappings.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Loop through the mappings and add each
|
// Loop through the mappings and add each
|
||||||
@@ -170,7 +169,7 @@ namespace SabreTools.Core.Tools
|
|||||||
|
|
||||||
// Try to get the mapping attribute
|
// Try to get the mapping attribute
|
||||||
MappingAttribute? attr = AttributeHelper<T>.GetAttribute(value);
|
MappingAttribute? attr = AttributeHelper<T>.GetAttribute(value);
|
||||||
if (attr?.Mappings == null || !attr.Mappings.Any())
|
if (attr?.Mappings == null || attr.Mappings.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Use either the first or second item in the list
|
// Use either the first or second item in the list
|
||||||
|
|||||||
@@ -141,25 +141,23 @@ namespace SabreTools.Core.Tools
|
|||||||
if (DetermineMultiplier(value) > 1)
|
if (DetermineMultiplier(value) > 1)
|
||||||
value = value.TrimEnd(['k', 'm', 'g', 't', 'p', 'e', 'z', 'y', 'i', 'b', ' ']);
|
value = value.TrimEnd(['k', 'm', 'g', 't', 'p', 'e', 'z', 'y', 'i', 'b', ' ']);
|
||||||
|
|
||||||
#if NETFRAMEWORK || NETCOREAPP3_1 || NET5_0
|
#if NET7_0_OR_GREATER
|
||||||
return value.All(c => char.IsNumber(c) || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F') || c == '.' || c == ',');
|
|
||||||
#elif NET7_0_OR_GREATER
|
|
||||||
return value.All(c => char.IsAsciiHexDigit(c) || c == '.' || c == ',');
|
return value.All(c => char.IsAsciiHexDigit(c) || c == '.' || c == ',');
|
||||||
#else
|
#else
|
||||||
return value.All(c => c.IsAsciiHexDigit() || c == '.' || c == ',');
|
return value.All(c => c.IsAsciiHexDigit() || c == '.' || c == ',');
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if NET6_0
|
#if NETFRAMEWORK || NETCOREAPP3_1 || NET5_0 || NET6_0
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Indicates whether a character is categorized as an ASCII hexademical digit.
|
/// Indicates whether a character is categorized as an ASCII hexademical digit.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="c">The character to evaluate.</param>
|
/// <param name="c">The character to evaluate.</param>
|
||||||
/// <returns>true if c is a hexademical digit; otherwise, false.</returns>
|
/// <returns>true if c is a hexademical digit; otherwise, false.</returns>
|
||||||
/// <remarks>This method determines whether the character is in the range '0' through '9', inclusive, 'A' through 'F', inclusive, or 'a' through 'f', inclusive.</remarks>
|
/// <remarks>This method determines whether the character is in the range '0' through '9', inclusive, 'A' through 'F', inclusive, or 'a' through 'f', inclusive.</remarks>
|
||||||
private static bool IsAsciiHexDigit(this char c)
|
internal static bool IsAsciiHexDigit(this char c)
|
||||||
{
|
{
|
||||||
return c switch
|
return char.ToLowerInvariant(c) switch
|
||||||
{
|
{
|
||||||
'0' => true,
|
'0' => true,
|
||||||
'1' => true,
|
'1' => true,
|
||||||
@@ -172,17 +170,11 @@ namespace SabreTools.Core.Tools
|
|||||||
'8' => true,
|
'8' => true,
|
||||||
'9' => true,
|
'9' => true,
|
||||||
'a' => true,
|
'a' => true,
|
||||||
'A' => true,
|
|
||||||
'b' => true,
|
'b' => true,
|
||||||
'B' => true,
|
|
||||||
'c' => true,
|
'c' => true,
|
||||||
'C' => true,
|
|
||||||
'd' => true,
|
'd' => true,
|
||||||
'D' => true,
|
|
||||||
'e' => true,
|
'e' => true,
|
||||||
'E' => true,
|
|
||||||
'f' => true,
|
'f' => true,
|
||||||
'F' => true,
|
|
||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,7 +124,12 @@ namespace SabreTools.Core.Tools
|
|||||||
return input;
|
return input;
|
||||||
|
|
||||||
List<char> invalidPath = [.. Path.GetInvalidPathChars()];
|
List<char> invalidPath = [.. Path.GetInvalidPathChars()];
|
||||||
return new string(input.Where(c => !invalidPath.Contains(c)).ToArray());
|
foreach (char invalid in Path.GetInvalidPathChars())
|
||||||
|
{
|
||||||
|
input = input!.Replace(invalid.ToString(), string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -223,7 +228,11 @@ namespace SabreTools.Core.Tools
|
|||||||
hash = hash.ToLowerInvariant();
|
hash = hash.ToLowerInvariant();
|
||||||
|
|
||||||
// Otherwise, make sure that every character is a proper match
|
// Otherwise, make sure that every character is a proper match
|
||||||
if (hash.Any(c => (c < '0' || c > '9') && (c < 'a' || c > 'f')))
|
#if NET7_0_OR_GREATER
|
||||||
|
if (hash.Any(c => char.IsAsciiHexDigit(c)))
|
||||||
|
#else
|
||||||
|
if (hash.Any(c => c.IsAsciiHexDigit()))
|
||||||
|
#endif
|
||||||
hash = string.Empty;
|
hash = string.Empty;
|
||||||
|
|
||||||
return hash;
|
return hash;
|
||||||
|
|||||||
@@ -53,11 +53,11 @@ namespace SabreTools.Core.Tools
|
|||||||
List<Type> assemblyTypes = [];
|
List<Type> assemblyTypes = [];
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
assemblyTypes = assembly.GetTypes().ToList<Type>();
|
assemblyTypes = [.. assembly.GetTypes()];
|
||||||
}
|
}
|
||||||
catch (ReflectionTypeLoadException rtle)
|
catch (ReflectionTypeLoadException rtle)
|
||||||
{
|
{
|
||||||
assemblyTypes = rtle.Types.Where(t => t != null)!.ToList<Type>();
|
assemblyTypes = [.. rtle.Types.Where(t => t != null)];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loop through all types
|
// Loop through all types
|
||||||
@@ -92,11 +92,11 @@ namespace SabreTools.Core.Tools
|
|||||||
List<Type> assemblyTypes = [];
|
List<Type> assemblyTypes = [];
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
assemblyTypes = assembly.GetTypes().ToList<Type>();
|
assemblyTypes = [.. assembly.GetTypes()];
|
||||||
}
|
}
|
||||||
catch (ReflectionTypeLoadException rtle)
|
catch (ReflectionTypeLoadException rtle)
|
||||||
{
|
{
|
||||||
assemblyTypes = rtle.Types.Where(t => t != null)!.ToList<Type>();
|
assemblyTypes = [.. rtle.Types.Where(t => t != null)];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loop through all types
|
// Loop through all types
|
||||||
|
|||||||
Reference in New Issue
Block a user