我相信我在这里遗漏了一些简单的东西,但我就是想不通。任何形式的帮助将不胜感激。
问题: 最终在resultsWithMedia
数组中的结果仅包含与中的第一项匹配的结果mediaTypesList
。我试过使用Exists()
,Find()
和Contains()
,但没有运气。我每次都会得到同样的行为。
例如:如果mediaTypesList
包含{"video", "link", "photo"}
值,resultsWithMedia
则将只保存类型为 的结果video
。
我想要实现的是resultsWithMedia
保持type
与mediaTypesList
.
代码:
public void GetPostsWithMedia(string from, string before, string mediaTypes)
{
// ... some variable declarations
List<string> mediaTypesList = new List<string>();
if (!string.IsNullOrEmpty(mediaTypes))
{
var list = mediaTypes.Split(',');
foreach (var type in list)
{
mediaTypesList.Add(type);
}
}
// ... some more code
// Note: r.Data is a Dictionary that contains strings as it's values
var resultsWithMedia = (from r in response.Results
where r.Data.ContainsKey("Type") && mediaTypesList.Exists(t => t == r.Data["Type"])
select new
{
// ... different variables
}).ToArray();
}
}