在C#中使用通配符作为字典中的键

时间:2014-12-23 13:41:07

标签: c# dictionary

我有一个电影缓存字典,其中键是字符串,值是电影。

Dictionary<string, Movie> movieCache = new Dictionary<string, Movie>();

movieCache.Add(string.Format("{0}:{1}:{2}", newMovie.Year, newMovie.Title, newMovie.Genre), newMovie);

我有另一个名单说乔的最喜欢的电影列表。例如

List<IMDBMovie> joesFavMovie // some list;

我需要显示两个列表。 一:来自joesFavMovie中缓存的电影,并匹配年份,标题和流派。 二:来自joesFavMovie缓存中的电影并匹配年份,标题。

我能够从缓存中显示第一个列表。但是,我从现有字典创建另一个字典缓存以显示第二个列表。 有没有办法为这两个列表使用相同的缓存。我不确定外卡是否是最佳解决方案。

提前致谢。 标题可能不合适。如果需要更改,请建议。

2 个答案:

答案 0 :(得分:1)

您可以使用LINQ。

List<Movie> movies = 
     movieCache.Where(m => m.Value.Year == 1975 && m.Value.Title == "Jaws")
               .ToList();

答案 1 :(得分:0)

var list2 = movieCache.Where(
    m => joesFavMovie.Any(fm => fm.Year == m.Value.Year && 
                                fm.Title == m.Value.Title)).ToList();