gpt4 book ai didi

c# - 使用二项元组与字典相比有什么优势?

转载 作者:太空狗 更新时间:2023-10-29 18:05:22 24 4
gpt4 key购买 nike

我有返回 IWebElements 列表及其相应名称的代码?我的理解是,包含两个项目的元组基本上是同一件事,但 Dictionary 使用散列映射来关联两个值。使用双项元组比使用字典有什么优势,反之亦然?

public Dictionary<IWebElement, string> SelectAllOptions(IWebDriver driver, ref DataObject masterData)
{
//Get the ID of the dropdown menu
DatabaseRetrieval.GetObjectRepository(ref masterData);
var strDropMenuId = masterData.DictObjectRepository["ID"];
//Find the dropdown menu and pull all options into a list
try
{
var dropMenu = new SelectElement(driver.FindElement(By.Id(strDropMenuId)));
// TODO want to know how we want this list to return.
var options = dropMenu.Options as List<IWebElement>;
if (options != null)
{
var values = options.ToDictionary(option => option, option => option.Text);
return values;
}
}

最佳答案

作为一般规则,您不想为您的程序不需要的可能性“支付” *。例如,如果您的程序有兴趣检索和处理一系列对(也称为“双元组”),但不需要执行从元组的第一个成员到第二个成员的查找,则提供一个集合对更有效:

IEnumerable<Tuple<IWebElement, string>> SelectAllOptions(...)
  • 这种方法占用的内存较少,因为您没有为哈希桶分配空间
  • 这种方法占用较少的 CPU,因为没有哈希键计算或冲突解决成本
  • 此方法不会向读者暗示数据用于查找。

当然,如果您返回的数据结构用于查找,那么您应该返回一个字典,或者在客户端构造一个字典以将一些 CPU 负载从服务器转移到客户。

* 随着内存、CPU 周期、可读性降低等

关于c# - 使用二项元组与字典相比有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23347359/

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