diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-07 12:00:20 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-07 12:00:20 -0400 |
| commit | 5225e054cd1759d9d7860e53cad9bea07226a515 (patch) | |
| tree | fad1c3c75f51ea91a0daee977acbdcdc1b76394f /MediaBrowser.Controller | |
| parent | b1b4e77178922249b6e523e11110c76472c57bf1 (diff) | |
reduced list enumerations
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseMetadataProvider.cs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs index a05266b0c4..b524a11aa4 100644 --- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs @@ -1,4 +1,5 @@ -using System.IO; +using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using MediaBrowser.Common.Extensions; @@ -361,19 +362,20 @@ namespace MediaBrowser.Controller.Providers var sb = new StringBuilder(); - var extensions = FilestampExtensions; + var extensionsList = FilestampExtensions; + var extensions = extensionsList.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); // Record the name of each file // Need to sort these because accoring to msdn docs, our i/o methods are not guaranteed in any order foreach (var file in resolveArgs.FileSystemChildren - .Where(i => IncludeInFileStamp(i, extensions)) + .Where(i => IncludeInFileStamp(i, extensions, extensionsList.Length)) .OrderBy(f => f.Name)) { sb.Append(file.Name); } foreach (var file in resolveArgs.MetadataFiles - .Where(i => IncludeInFileStamp(i, extensions)) + .Where(i => IncludeInFileStamp(i, extensions, extensionsList.Length)) .OrderBy(f => f.Name)) { sb.Append(file.Name); @@ -387,8 +389,9 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <param name="file">The file.</param> /// <param name="extensions">The extensions.</param> + /// <param name="numExtensions">The num extensions.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> - private bool IncludeInFileStamp(FileSystemInfo file, string[] extensions) + private bool IncludeInFileStamp(FileSystemInfo file, Dictionary<string,string> extensions, int numExtensions) { try { @@ -397,7 +400,7 @@ namespace MediaBrowser.Controller.Providers return false; } - return extensions.Length == 0 || extensions.Contains(file.Extension, StringComparer.OrdinalIgnoreCase); + return numExtensions == 0 || extensions.ContainsKey(file.Extension); } catch (IOException ex) { |
