c# - 字典和 SelectMany()

标签 c# dictionary

所以我有这些部分类。有关 ParseFCIE 的部分实现和我的问题,请参见下文。

class CiscoSwitch
{
    Dictionary<int, CiscoVSAN> VSANList = new Dictionary<int, CiscoVSAN>();
    public void ParseFCIE(string block) 
    {}
}

class CiscoVSAN
{
     Dictionary<string, CiscoSwitch> MemberSwitches = new Dictionary<string, CiscoSwitch> ();
} 

ParseFCIE 的一部分是检查输入数据中的传入交换机是否已经在任何 CiscoVSAN 对象的 SwitchMembers 字典中,如果不存在,则添加它。我有 2 个字典语句。第一条语句有效,第二条编译器说它无法确定谓词的类型,我不知道为什么。我更喜欢第二个第二个陈述,因为它只是一个步骤。第一种方法是搜索开关,然后检查搜索结果是否为空值。

ParseFCIE(string block)
{  
     string DID = string.Empty;
     //partial implementation
     // 'this' is a CiscoSwitch object
     //this works
     var vsans= this.VSANList.SelectMany(v => v.Value.MemberSwitches.
                          Where(d => d.Value.switchName == this.switchName)); 
     // assume DID now has a value;
     // this line the compiler says the type arguments cannot be inferred from usage
     if (this.VSANList.SelectMany(v => v.Value.MemberSwitches.ContainsKey(DID))) 
     {}
}

最佳答案

if (this.VSANList.SelectMany(v => v.Value.MemberSwitches).Any(x => x.ContainsKey(DID))) {
}

关于c# - 字典和 SelectMany(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12380659/

相关文章:

c# - 在 C# 中,如果关联的 catch block 引发异常,是否可以强制控制通过 finally block ?

c# - 如何以编程方式在 Outlook 邮件正文中创建表格

c# - 使用释放字符和分隔符使用正则表达式拆分字符串

c++ - 动态分配到二维 std::unordered_map

language-agnostic - 什么时候使用 map 有意义?

javascript - 使用自定义函数从字典创建列表/数组

c# - 为什么我会得到罗马尼亚语翻译的 IMDB 结果?

c# - PAGEMETHODS 不适用于 JS 函数

c# - 在 Serilog 中记录字典,其中值类型是一个类

java - 哈希表和字典有什么区别?