aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-08-07 16:44:57 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-08-07 16:44:57 -0400
commit69847b84e78c2b5ea7c4e28534e8ac968d68aacb (patch)
tree803342773c7a837e5925ef44e2659e35d493fdb7
parenta3f7ebe7025c1c3a8bde3dd62517027c37d11a43 (diff)
use a dictionary for lookups when determining similar items
-rw-r--r--MediaBrowser.Api/SimilarItemsHelper.cs6
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))
{