gpt4 book ai didi

c# - 字典和 SelectMany()

转载 作者:太空宇宙 更新时间:2023-11-03 11:17:00 29 4
gpt4 key购买 nike

所以我有这些部分类。有关 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com