diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-07 16:44:57 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-08-07 16:44:57 -0400 |
| commit | 69847b84e78c2b5ea7c4e28534e8ac968d68aacb (patch) | |
| tree | 803342773c7a837e5925ef44e2659e35d493fdb7 | |
| parent | a3f7ebe7025c1c3a8bde3dd62517027c37d11a43 (diff) | |
use a dictionary for lookups when determining similar items
| -rw-r--r-- | MediaBrowser.Api/SimilarItemsHelper.cs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/MediaBrowser.Api/SimilarItemsHelper.cs b/MediaBrowser.Api/SimilarItemsHelper.cs index 03ee8c191..fd49af8de 100644 --- a/MediaBrowser.Api/SimilarItemsHelper.cs +++ b/MediaBrowser.Api/SimilarItemsHelper.cs @@ -164,9 +164,11 @@ namespace MediaBrowser.Api // Find common studios points += item1.Studios.Where(i => item2.Studios.Contains(i, StringComparer.OrdinalIgnoreCase)).Sum(i => 3); - var item2PeopleNames = item2.People.Select(i => i.Name).ToList(); + var item2PeopleNames = item2.People.Select(i => i.Name) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); - points += item1.People.Where(i => item2PeopleNames.Contains(i.Name, StringComparer.OrdinalIgnoreCase)).Sum(i => + points += item1.People.Where(i => item2PeopleNames.ContainsKey(i.Name)).Sum(i => { if (string.Equals(i.Type, PersonType.Director, StringComparison.OrdinalIgnoreCase) || string.Equals(i.Role, PersonType.Director, StringComparison.OrdinalIgnoreCase)) { |
