Просмотр исходного кода

Switch to using spans for string comparison

Joe Rogers 3 лет назад
Родитель
Сommit
dad7a6fdf6
1 измененных файлов с 6 добавлено и 7 удалено
  1. 6 7
      MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs

+ 6 - 7
MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs

@@ -149,8 +149,6 @@ namespace MediaBrowser.Providers.MediaInfo
                 return Array.Empty<ExternalPathParserResult>();
             }
 
-            var externalPathInfos = new List<ExternalPathParserResult>();
-
             var files = directoryService.GetFilePaths(folder, clearCache).ToList();
             var internalMetadataPath = video.GetInternalMetadataPath();
             if (_fileSystem.DirectoryExists(internalMetadataPath))
@@ -163,14 +161,15 @@ namespace MediaBrowser.Providers.MediaInfo
                 return Array.Empty<ExternalPathParserResult>();
             }
 
+            var externalPathInfos = new List<ExternalPathParserResult>();
+            ReadOnlySpan<char> prefix = video.FileNameWithoutExtension;
             foreach (var file in files)
             {
-                var prefixLength = video.FileNameWithoutExtension.Length;
-                var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file);
-                if (video.FileNameWithoutExtension.Equals(fileNameWithoutExtension[..prefixLength], StringComparison.OrdinalIgnoreCase)
-                    && (fileNameWithoutExtension.Length == prefixLength || _namingOptions.MediaFlagDelimiters.Contains(fileNameWithoutExtension[prefixLength])))
+                var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file.AsSpan());
+                if (prefix.Equals(fileNameWithoutExtension[..prefix.Length], StringComparison.OrdinalIgnoreCase)
+                    && (fileNameWithoutExtension.Length == prefix.Length || _namingOptions.MediaFlagDelimiters.Contains(fileNameWithoutExtension[prefix.Length])))
                 {
-                    var externalPathInfo = _externalPathParser.ParseFile(file, fileNameWithoutExtension[prefixLength..]);
+                    var externalPathInfo = _externalPathParser.ParseFile(file, fileNameWithoutExtension[prefix.Length..].ToString());
 
                     if (externalPathInfo != null)
                     {