如何在列表字典中选择值和键
本文关键字:选择 字典 列表 | 更新日期: 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();