diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/StringExtension.cs b/src/Snap.Hutao/Snap.Hutao/Extension/StringExtension.cs index 02d523aa..70a867f7 100644 --- a/src/Snap.Hutao/Snap.Hutao/Extension/StringExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Extension/StringExtension.cs @@ -27,4 +27,10 @@ internal static class StringExtension { return source.AsSpan().TrimEnd(value).ToString(); } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool EqualsAny(this string source, string[] values, StringComparison comparisonType) + { + return values.Any(value => source.Equals(value, comparisonType)); + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs index 2755c423..26fc68e6 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs @@ -138,7 +138,7 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel { (bool isOk, ValueFile file) = fileSystemPickerInteraction.PickFile(SH.FilePickerPowerShellCommit, [("PowerShell", "powershell.exe;pwsh.exe")]); - if (isOk && Path.GetFileNameWithoutExtension(file).Equals("POWERSHELL", StringComparison.OrdinalIgnoreCase)) + if (isOk && Path.GetFileNameWithoutExtension(file).EqualsAny(["POWERSHELL", "PWSH"], StringComparison.OrdinalIgnoreCase)) { await taskContext.SwitchToMainThreadAsync(); Options.PowerShellPath = file;