我有这些数据:
public class MetaLink
{
public long LinkNumbering { get; set; }
public long TargetPageId { get; set; }
public string TargetUrl { get; set; }
public LinkType LinkOfType { get; set; }
}
public static ConcurrentDictionary<int, List<MetaLink>> Links = new ConcurrentDictionary<int, List<MetaLink>>();
如何获取列表字典值中的MetaLink
对象的所有索引以及带有TargetUrl
属性的对应字典键==&#34;某些值&#34;
Linq也许可以,但我找不到它。 我这样做:
var someLinks = Links.Values.Where(kvp => kvp.Any(ml => ml.TargetUrl == "Some value"));
但是我无法获得对应的字典数据
答案 0 :(得分:1)
你很亲密 - 你想要
var someLinks = Links.Where(kvp => kvp.Value.Any(ml => ml.TargetUrl == "Some value"))
// all key.value pairs where the Value contains the target URL
.Select(kvp => kvp.Key); //keys for those values
答案 1 :(得分:0)
尝试一下这个。还没编译。
var key = Links.Where(kvp => kvp.Value.Any(ml => ml.TargetUrl == "Some value")).Select(x => x.Key).SingleOrDefault();