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

本文关键字:通配符 字典 | 更新日期: 2023-09-27 18:35:03

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

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中,并与年份,标题匹配。

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

提前谢谢。标题可能不合适。请建议是否需要更改。

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

你可以使用 LINQ 来实现此目的。

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