我创建了List<YouTubeChannelInfo>
,其中包含许多YouTube频道列表。
YouTubeChannelInfo
具有名为“播放列表”的Dictionary属性,其中包含“播放列表标题”作为键,并包含“ ID”作为值。因此,给定频道可能会有很多播放列表。
public class YouTubeChannelInfo
{
public string Name { get; set; } // Channel Name
public Dictionary<string, string> Playlists { get; set; } // Key - Playlist Title, Value - Playlist ID
}
我有string[] playlists
,其中包含一系列播放列表标题,并且仅需要根据这些播放列表标题过滤YouTube频道。
List<YouTubeChannelInfo> youTubeChannelsInfo = GetChannels();
string[] playlists = GetPlaylists();
youTubeChannelsInfo = FilterByPlaylists(youTubeChannelsInfo, playlists); // Anyway to do this ?
如果我可以使用Linq进行过滤,那会更好
答案 0 :(得分:2)
应该与使用Where
和Any
以及ContainsKey
一样简单
List<YouTubeChannelInfo> youTubeChannelsInfo = GetChannels();
string[] playlists = GetPlaylists();
var filtered = youTubeChannelsInfo.Where(x => playLists.Any(y => x.Playlists.ContainsKey(y))).ToList();