如何在列表字典中选择值和键

本文关键字:选择 字典 列表 | 更新日期: 2023-09-27 18:16:10

我有这些数据:

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属性对应的字典键== "Some value"

也许是可能的Linq,但我没有找到它。我这样做:

var someLinks = Links.Values.Where(kvp => kvp.Any(ml => ml.TargetUrl == "Some value"));

但是我不能得到对应的字典int键

如何在列表字典中选择值和键

你离目标很近了

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

试试这个。没有编译。

var key = Links.Where(kvp => kvp.Value.Any(ml => ml.TargetUrl == "Some value")).Select(x => x.Key).SingleOrDefault();