C# 使用lambda表达式从c字典中筛选和检索数据
我有ListA和ListA有ListB 我需要检索ListA的所有键,它在ListB中有一个特定的键 例如: 如果我给123作为listB的键,我应该得到 如果我给246作为ListB的键,我应该得到 ListA[0] ListA[1] 选择ListA的所有键,其中ListB.Key=123 努力表达C# 使用lambda表达式从c字典中筛选和检索数据,c#,.net,linq,lambda,C#,.net,Linq,Lambda,我有ListA和ListA有ListB 我需要检索ListA的所有键,它在ListB中有一个特定的键 例如: 如果我给123作为listB的键,我应该得到 如果我给246作为ListB的键,我应该得到 ListA[0] ListA[1] 选择ListA的所有键,其中ListB.Key=123 努力表达 ListA.Values.Where(b => b.ListB.Key==123).Select(a=>a.Key) 错误:错误CS1061:“字典”不包含 “键”和无可访问扩展方法
ListA.Values.Where(b => b.ListB.Key==123).Select(a=>a.Key)
错误:错误CS1061:“字典”不包含
“键”和无可访问扩展方法“键”的定义
接受“Dictionary”类型的第一个参数可能会
是否缺少using指令或程序集引用
错误CS1061:“KeyValuePair”不包含
“ListB”和无可访问扩展方法的定义
可以找到接受“KeyValuePair”类型的第一个参数的ListB是否缺少using指令或
汇编参考
下面是类defn
class cListA
{
private Dictionary<string, double> ListB = new Dictionary<string, double>();
private string Desc;
public Dictionary<string, double> ListBvar
{
get
{
return ListB
}
}
public string sDesc
{
get
{
return Desc
}
}
}
private Dictionary <string, cListA> ListA= new Dictionary <string, cListA>();
我明白了答案很简单
ListA.Values.Where(p=>
p.ListB.Values.Contains(123)).Select(a=>a.Key).ToList().
这些错误似乎并不反映代码。这是您的实际代码吗?实际代码与可能的不同变量名称相同,但错误并不反映您的错误code@SMD-你可以发布列表的类定义,并用有效的C代码提供初始数据吗?更新问题,不要在注释中添加代码这很好。请用有效的C代码中的示例数据更新您的问题,然后在这个答案中显示它如何为您获得正确的结果。我们致力于提供关于堆栈溢出的高质量问题和答案。
ListA.Where(p => p.ListB.Contains(123)).Select(p=> p.ListA.ToList()
class cListA
{
private Dictionary<string, double> ListB = new Dictionary<string, double>();
private string Desc;
public Dictionary<string, double> ListBvar
{
get
{
return ListB
}
}
public string sDesc
{
get
{
return Desc
}
}
}
private Dictionary <string, cListA> ListA= new Dictionary <string, cListA>();
ListA.Values.Where(p=>
p.ListB.Values.Contains(123)).Select(a=>a.Key).ToList().