优化TreeView方法

2024-02-08

我有一个非常大的方法可以插入子元素TreeView,基本上我做了两个不同的查询,并在 I.N. 上设置了很小的更改。第一个 foreach 插入父级的第一个子级,第二个 foreach 插入之前创建的子级的子级。

Foreach查询只是改变条件AND [ParentDesignKey] IS NULL,但是里面的变量太相似了。

所以这里我只有两个不同的 foreach,但我需要添加第一个 foreach(第二个 foreach)的 4 个子级,并且我不需要非常大的方法。有什么办法可以优化这个吗?

完整方法:

private void AssignDesign(DataTable designItemList, DataTable designFolioList, TreeNode parent, string designName, string legacyKey, int indexProject)
        {
            var iDesign = 0;


            foreach (var currentDesignItem in designItemList.Select($"[Design Name] = '{designName}' AND [Project Number] = {legacyKey}  AND [ParentDesignKey] IS NULL"))
            {
                var designItemName = currentDesignItem["DesignItemName"] as string;
                var designItemKey = currentDesignItem["DesignKey"] as int?;
                var designItemStatus = currentDesignItem["Design Status"] as string;
                var designItemIsLocked = currentDesignItem["IsLocked"] as bool?;
                var designItemStatusKey = currentDesignItem["StatusKey"] as int?;
                var designItemCreated = currentDesignItem["Design Created"] as DateTime?;
                var designItemRunCount = currentDesignItem["RunCount"] as int?;
                var designItemRunUnConCount = currentDesignItem["RunUnconCnt"] as int?;
                var designItemShopsStatus = currentDesignItem["ShopsStatus"] as int?;
                var designItemShopStatusExtended = currentDesignItem["ShopStatusExtended"] as string;
                var designItemFolio = designFolioList.Select($"[DesignKey] ={designItemKey}").FirstOrDefault()["Folio"].ToString();


                if (designItemName is null || designItemShopsStatus is null || designItemShopStatusExtended is null || designItemKey is null || designItemStatus is null || designItemStatusKey is null || designItemCreated is null || designItemRunCount is null || designItemRunUnConCount is null || designItemIsLocked is null) continue;



                var projectIndex = parent.Index;
                parent.Nodes[indexProject].Nodes.Add(designItemName);
                parent.Nodes[indexProject].Nodes[iDesign].Tag = $"{designItemKey.Value}|{projectIndex}|BDCD";
                parent.Nodes[indexProject].Nodes[iDesign].Name = "Design";
                parent.Nodes[indexProject].Nodes[iDesign].ToolTipText = $"Design: {designItemName} - Folio: {designItemFolio}";
                parent.Nodes[indexProject].Nodes[iDesign].ContextMenuStrip = contextMenuDesign;

                //load icon for design item
                this.LoadDesignStatusNodeIcon(parent.Nodes[indexProject].Nodes, iDesign, designItemStatusKey.Value, designItemIsLocked.Value);
                var parentNodes = parent.Nodes[indexProject].Nodes[iDesign].Nodes;
                parentNodes.Add(new TreeNode($"{designItemCreated.Value.ToLongDateString()} ({designItemCreated.Value.ToString("yyMMdd")})", 8, 8)
                {
                    Name = "Design Created",
                    ToolTipText = "Created Date"
                });
                parentNodes.Add(new TreeNode(designItemStatus, 18, 18)
                {
                    Name = "Design Status",
                    ToolTipText = "Design Status",
                    Tag = $"{designItemStatusKey.Value}|{designItemIsLocked}"
                });
                var imgKey = LoadShopsNodeIcon(designItemShopsStatus.Value);

                parentNodes.Add(new TreeNode(designItemShopStatusExtended, imgKey, imgKey)
                {
                    Name = "Shops Drawing Status",
                    ToolTipText = "Shops Drawing Status",
                    Tag = designItemShopsStatus.Value
                });

                if (designItemRunCount.Value == 0 && designItemRunUnConCount.Value > 0)
                {
                    parentNodes.Add(new TreeNode("Unconsolidated Runs: " + designItemRunUnConCount.Value)
                    {
                        Name = "Unconsolidated Runs",
                        ToolTipText = "Unconsolidated Runs",
                        Tag = designItemRunUnConCount.Value
                    });
                }
                else
                {
                    parentNodes.Add(new TreeNode("Run Count: " + designItemRunCount.Value)
                    {
                        Name = "Run Count",
                        ToolTipText = "Run Count",
                        Tag = designItemRunCount.Value
                    });
                }

                var iChangeOrderDesign = 0;
                foreach (var item in designItemList.Select($"[Design Name] = '{designName}' AND [Project Number] = {legacyKey} AND [ParentDesignKey] = {designItemKey}"))
                {
                    var changeOrderDesignItemName = item["DesignItemName"] as string;
                    var changeOrderDesignItemKey = item["DesignKey"] as int?;
                    var changeOrderDesignItemStatus = item["Design Status"] as string;
                    var changeOrderDesignItemIsLocked = item["IsLocked"] as bool?;
                    var changeOrderDesignItemStatusKey = item["StatusKey"] as int?;
                    var changeOrderDesignItemCreated = item["Design Created"] as DateTime?;
                    var changeOrderDesignItemRunCount = item["RunCount"] as int?;
                    var changeOrderDesignItemRunUnConCount = item["RunUnconCnt"] as int?;
                    var changeOrderDesignItemShopsStatus = item["ShopsStatus"] as int?;
                    var changeOrderDesignItemShopStatusExtended = item["ShopStatusExtended"] as string;
                    var changeOrderDesignItemFolio = designFolioList.Select($"[DesignKey] ={changeOrderDesignItemKey}").FirstOrDefault()["Folio"].ToString();
                    var changeOrderParentDesignKey = item["ParentDesignKey"] as int?;

                    if (changeOrderDesignItemName is null || changeOrderDesignItemShopsStatus is null || changeOrderDesignItemShopStatusExtended is null || changeOrderDesignItemKey is null || changeOrderDesignItemStatus is null || changeOrderDesignItemStatusKey is null || changeOrderDesignItemCreated is null || changeOrderDesignItemRunCount is null || changeOrderDesignItemRunUnConCount is null || changeOrderDesignItemIsLocked is null) continue;


                    //Create lowest level and assign their tree nodes

                    projectIndex = parent.Index;

                    TreeNode tn = parent.Nodes[indexProject].Nodes[iDesign].Nodes.Add(changeOrderDesignItemName);
                    parent.Nodes[indexProject].Nodes[iDesign].Nodes[tn.Index].Tag = $"{changeOrderDesignItemKey.Value}|{projectIndex}|CO";
                    parent.Nodes[indexProject].Nodes[iDesign].Nodes[tn.Index].Name = "Design";
                    parent.Nodes[indexProject].Nodes[iDesign].Nodes[tn.Index].ToolTipText = $"Change Order: {changeOrderDesignItemName} - Folio: {changeOrderDesignItemFolio}";
                    parent.Nodes[indexProject].Nodes[iDesign].Nodes[tn.Index].ContextMenuStrip = contextMenuDesign;


                    //load icon for changeOrderDesign item

                    var changeOrderparentNodes = parent.Nodes[indexProject].Nodes[iDesign].LastNode.Nodes;
                    changeOrderparentNodes.Add(new TreeNode($"{changeOrderDesignItemCreated.Value.ToLongDateString()} ({changeOrderDesignItemCreated.Value.ToString("yyMMdd")})", 8, 8)
                    {
                        Name = "Change Order Design Created",
                        ToolTipText = "Created Date"
                    });
                    changeOrderparentNodes.Add(new TreeNode(changeOrderDesignItemStatus, 18, 18)
                    {
                        Name = "Design Status",
                        ToolTipText = "Design Status",
                        Tag = $"{changeOrderDesignItemStatusKey.Value}|{changeOrderDesignItemIsLocked}"
                    });
                    var changeOrderimgKey = LoadShopsNodeIcon(changeOrderDesignItemShopsStatus.Value);

                    changeOrderparentNodes.Add(new TreeNode(changeOrderDesignItemShopStatusExtended, changeOrderimgKey, changeOrderimgKey)
                    {
                        Name = "Shops Drawing Status",
                        ToolTipText = "Shops Drawing Status",
                        Tag = changeOrderDesignItemShopsStatus.Value
                    });

                    if (changeOrderDesignItemRunCount.Value == 0 && changeOrderDesignItemRunUnConCount.Value > 0)
                    {
                        changeOrderparentNodes.Add(new TreeNode("Unconsolidated Runs: " + changeOrderDesignItemRunUnConCount.Value)
                        {
                            Name = "Unconsolidated Runs",
                            ToolTipText = "Unconsolidated Runs",
                            Tag = changeOrderDesignItemRunUnConCount.Value
                        });
                    }
                    else
                    {
                        changeOrderparentNodes.Add(new TreeNode("Run Count: " + changeOrderDesignItemRunCount.Value)
                        {
                            Name = "Run Count",
                            ToolTipText = "Run Count",
                            Tag = changeOrderDesignItemRunCount.Value
                        });
                    }

                    this.LoadChangeOrderNodeIcon(parent.Nodes[indexProject].Nodes[iDesign].Nodes[tn.Index], iChangeOrderDesign, changeOrderDesignItemStatusKey.Value, changeOrderDesignItemIsLocked.Value);
                }

                iDesign++;
            }
        }

UPDATE

为了采用更简单的方法,我进行递归并根据收到的项目设置变量:

private void AssignDesign(DataTable designItemList, DataTable designFolioList, TreeNode parent, string designName, string legacyKey, int indexProject, string DesignType, string Condition, int currDesign)
        {
            var iDesign = 0;


            foreach (var currentDesignItem in designItemList.Select($"[Design Name] = '{designName}' AND [Project Number] = {legacyKey}  AND [ParentDesignKey] {Condition}"))
            {
                var designItemName = currentDesignItem["DesignItemName"] as string;
                var designItemKey = currentDesignItem["DesignKey"] as int?;
                var designItemStatus = currentDesignItem["Design Status"] as string;
                var designItemIsLocked = currentDesignItem["IsLocked"] as bool?;
                var designItemStatusKey = currentDesignItem["StatusKey"] as int?;
                var designItemCreated = currentDesignItem["Design Created"] as DateTime?;
                var designItemRunCount = currentDesignItem["RunCount"] as int?;
                var designItemRunUnConCount = currentDesignItem["RunUnconCnt"] as int?;
                var designItemShopsStatus = currentDesignItem["ShopsStatus"] as int?;
                var designItemShopStatusExtended = currentDesignItem["ShopStatusExtended"] as string;
                var designItemFolio = designFolioList.Select($"[DesignKey] ={designItemKey}").FirstOrDefault()["Folio"].ToString();
                var changeOrderParentDesignKey = currentDesignItem["ParentDesignKey"] as int?;
                //var designConfirmDeliveryDate = currentDesignItem["ConfirmDeliveryDate"] as DateTime?;

                if (designItemName is null || designItemShopsStatus is null || designItemShopStatusExtended is null || designItemKey is null || designItemStatus is null || designItemStatusKey is null || designItemCreated is null || designItemRunCount is null || designItemRunUnConCount is null || designItemIsLocked is null) continue;



                //Create lowest level and assign their tree nodes
                var projectIndex = parent.Index;
                TreeNodeCollection parentNodes;
                if (DesignType == "BDCD")
                {
                    parent.Nodes[indexProject].Nodes.Add(designItemName);
                    parent.Nodes[indexProject].Nodes[iDesign].Tag = $"{designItemKey.Value}|{projectIndex}|BDCD";
                    parent.Nodes[indexProject].Nodes[iDesign].Name = "Design";
                    parent.Nodes[indexProject].Nodes[iDesign].ToolTipText = $"Design: {designItemName} - Folio: {designItemFolio}";
                    parent.Nodes[indexProject].Nodes[iDesign].ContextMenuStrip = contextMenuDesign;
                    this.LoadDesignStatusNodeIcon(parent.Nodes[indexProject].Nodes, iDesign, designItemStatusKey.Value, designItemIsLocked.Value);
                    parentNodes = parent.Nodes[indexProject].Nodes[iDesign].Nodes;

                }
                else
                {
                    TreeNode tn = parent.Nodes[indexProject].Nodes[currDesign].Nodes.Add(designItemName);
                    parent.Nodes[indexProject].Nodes[currDesign].Nodes[tn.Index].Tag = $"{designItemKey.Value}|{projectIndex}|CO";
                    parent.Nodes[indexProject].Nodes[currDesign].Nodes[tn.Index].Name = "Design";
                    parent.Nodes[indexProject].Nodes[currDesign].Nodes[tn.Index].ToolTipText = $"Change Order: {designItemName} - Folio: {designItemFolio}";
                    parent.Nodes[indexProject].Nodes[currDesign].Nodes[tn.Index].ContextMenuStrip = contextMenuDesign;
                    this.LoadChangeOrderNodeIcon(parent.Nodes[indexProject].Nodes[currDesign].Nodes[tn.Index], currDesign, designItemStatusKey.Value, designItemIsLocked.Value);
                    parentNodes = parent.Nodes[indexProject].Nodes[currDesign].LastNode.Nodes;
                }


                //load icon for design item
                var dateName = string.Empty;
                switch (DesignType)
                {
                    case "BDCD":
                        dateName = "Design Created";
                        break;
                    case "CO":
                        dateName = "Change Order Design Created";
                        break;


                }

                parentNodes.Add(new TreeNode($"{designItemCreated.Value.ToLongDateString()} ({designItemCreated.Value.ToString("yyMMdd")})", 8, 8)
                {
                    Name = dateName,
                    ToolTipText = "Created Date"
                });
                parentNodes.Add(new TreeNode(designItemStatus, 18, 18)
                {
                    Name = "Design Status",
                    ToolTipText = "Design Status",
                    Tag = $"{designItemStatusKey.Value}|{designItemIsLocked}"
                });
                var imgKey = LoadShopsNodeIcon(designItemShopsStatus.Value);

                parentNodes.Add(new TreeNode(designItemShopStatusExtended, imgKey, imgKey)
                {
                    Name = "Shops Drawing Status",
                    ToolTipText = "Shops Drawing Status",
                    Tag = designItemShopsStatus.Value
                });

                if (designItemRunCount.Value == 0 && designItemRunUnConCount.Value > 0)
                {
                    parentNodes.Add(new TreeNode("Unconsolidated Runs: " + designItemRunUnConCount.Value)
                    {
                        Name = "Unconsolidated Runs",
                        ToolTipText = "Unconsolidated Runs",
                        Tag = designItemRunUnConCount.Value
                    });
                }
                else
                {
                    parentNodes.Add(new TreeNode("Run Count: " + designItemRunCount.Value)
                    {
                        Name = "Run Count",
                        ToolTipText = "Run Count",
                        Tag = designItemRunCount.Value
                    });
                }

                var lastItem = string.Empty;
                foreach (var item in designItemList.Select($"[Design Name] = '{designName}' AND [Project Number] = {legacyKey} AND [ParentDesignKey] = {designItemKey}"))
                {
                    if (lastItem != parent.Text)
                    {
                    AssignDesign(designItemList, designFolioList, parent, designName, legacyKey, indexProject, "CO", $"= {designItemKey}", iDesign);
                    }
                    lastItem = parent.Text;
                }

                iDesign++;



            }
        }

但正如您所看到的,我在方法递归中发送查询过滤器:

第一个foreach:

AssignDesign(tvTable, designFolioList, parent, designName, currentProjectNumber, iDesign, "BDCD","IS NULL", 0);

第二个foreach(递归)

 AssignDesign(designItemList, designFolioList, parent, designName, legacyKey, indexProject, "CO", $"= {designItemKey}", iDesign);

在我发送的第一个中"IS NULL"在第二个中$"= {designItemKey}"

有没有办法只查询一次而不是使用不同的过滤器查询两次?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

优化TreeView方法 的相关文章

  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 按成员序列化

    我已经实现了template
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 获取对象类型并相应地分配值

    我有一个数组列表不同类型的值其中 第一个值 gt string 第二个值 gt datetime 第三个值 gt boolean第四个值是int 我如何找到它们的类型并相应地分配值 任何帮助将不胜感激 这是我的代码 foreach obje
  • 有没有办法将类作为参数传递给 JAXB XMLAdapter 或从另一个类访问 Getter 方法

    我正在尝试创建一个XMLAdapter我的一个对象的类 我需要访问Getters来自另一个类 以便可以从该类的 Getters 填充某些对象 但我无法这样做 基本上 我想访问我的Child class Getter内的方法XMLAdapte
  • 测试文件/目录是否只读

    好吧 我是一个 C 新手 如何测试一个文件在 Windows 上是否只读 我尝试使用 GetFileAttributes 函数进行一些操作 但无济于事 给定文件的路径 测试它是否只读的正确方法是什么 Edit 所以我现在还停留在这一点上 我
  • 如何在Flutter中绘制带有尖角三角形的线?

    我正在考虑实施以下设计 如何实现如上图所示的线上的三角形凹凸 我是颤振的新手 对如何开始这方面一无所知 很简单 你只需要了解如何使用剪刀即可 方法如下 你需要使用ClipPath override Widget build BuildCon
  • AngularJS 两个 http get 在一个控制器中会出现问题

    我在一个控制器中有两个 http GET 有时它可以工作 并且其中两个正在工作 有时只有一个 http Get 可以工作 有时它们都没有显示 有什么建议么 controller nextSidorAdminCtrl function sco
  • Firebase 数据库安全,无需 Firebase 身份验证

    我在 Play 商店上发布了一个应用程序 我想在该应用程序中实现 firebase 我已阅读所有文档 但有两个疑问 如果有人在我的应用程序中使用 apk 反编译器并获取 google services json 他们可以对数据库做任何他们想
  • 如何将 CKFinder 与 Laravel 集成?

    我正在尝试将 CKFinder 与 Laravel 集成 我已经完成了 95 左右 我可以让一切正常工作 除了CheckAuthentication功能 我必须做到return true无论上传是否有效 我尝试做的是在 config php
  • 如何获取按计数列排序的组

    很难用简单的英语问这个问题 所以我会展示我正在尝试做的事情 这是我的 SQL 代码 select top 100 Name COUNT Name as total from ActivityLog where Timestamp betwe
  • 如何预加载 .net 程序集

    在我的工作中 我们正在使用 net Framework 4开发不同的应用程序 所有应用程序都使用我们开发的通用程序集 例如data dll中的数据层 这些应用程序驻留在网络驱动器上并直接从那里启动 大多数大型应用程序第一次启动 冷启动 需要
  • 在python中将数字表示为二的幂之和的最快方法是什么

    例如 gt gt gt two powers 42 gt gt gt 2 8 32 我目前的幼稚实现 取自here https stackoverflow com a 27936818 1177288 看起来像那样 def two powe
  • 如何优雅地停止单节点 kubernetes 集群

    我已经根据 官方教程 1 设置了单节点kubernetes 除了官方文档之外 我还设置了单节点集群 kubectl taint nodes all node role kubernetes io master 残疾人驱逐限制 cat lt
  • Windows 窗体,从父窗体获取属性

    我遇到了一点问题 我在父表单中有一个数据表 我打开一个对话框表单 获取数据表属性并创建一个复选框列表 这将用于导出这些列 但是当我运行应用程序时 parentform 属性为空 我尝试在父窗体和对话框窗体中设置它 我假设如果调用 ShowD
  • 我在哪里弄乱了输出格式?

    因此 当我尝试运行代码时收到一条错误消息 但我无法弄清楚问题到底是什么 它说这是一个 ValueError 但我不知道到底是哪一个 也许只是迟到了 但我却不知所措 这是我的代码 def sort count dict avg scores
  • 为Android应用程序设置图标

    如何为我的 Android 应用程序设置图标 如果您希望您的应用程序在多种设备上可用 您应该将应用程序图标放在不同的位置res drawable 提供的文件夹 在每个文件夹中 您应该包含一个 48dp 大小的图标 drawable ldpi
  • go helm 图表模板中的循环[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在尝试在 kubernetes helm 图表中循环计数 如下所示 reaction mongo url big mongodb for m
  • TypeScript 将camelCase 键转换为snake_case

    想象一下 我们有一些具有驼峰命名法属性的对象类型 type Foo propertyBob string propertyJane number 有没有办法创建一个将camelCase转换为snake case的泛型 例如 type foo
  • 发布操作:“提交助手应用程序时出错”,没有显示错误

    我正在尝试发布我的第一个 Google Assistant 操作 但在尝试提交应用程序时 控制台告诉我 提交助理应用程序时出错 但没有任何详细信息 是否有任何日志或其他内容可以为我提供有关在提交之前需要修复的更多详细信息 我迷路了 谢谢 许
  • Pytorch RuntimeError:CUDA 内存不足且有大量可用内存

    在训练模型时 我遇到了以下问题 RuntimeError CUDA out of memory Tried to allocate 304 00 MiB GPU 0 8 00 GiB total capacity 142 76 MiB al
  • 使用 NetBeans 6.8 进行 XSLT 自动完成

    我记得当时NetBeans 6中支持XSLT 现在我使用NetBeans 6 8 但仍然找不到这样的插件 你能帮助我吗 工具 gt 插件 gt 设置添加http updates netbeans org netbeans updates 6
  • 优化TreeView方法

    我有一个非常大的方法可以插入子元素TreeView 基本上我做了两个不同的查询 并在 I N 上设置了很小的更改 第一个 foreach 插入父级的第一个子级 第二个 foreach 插入之前创建的子级的子级 Foreach查询只是改变条件