首页 > 解决方案 > 如何将文本描述添加到 KeyValuePair 列表?

问题描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Testing
{
    public partial class Form1 : Form
    {
        List<int> levels = new List<int>();
        List<int> indexs = new List<int>();
        List<KeyValuePair<int, int>> myList = new List<KeyValuePair<int, int>>();

        public Form1()
        {
            InitializeComponent();

            foreach (TreeNode node in advancedTreeView1.Nodes)
            {
                ListNodes(node, 1);
            }
        }

        void ListNodes(TreeNode node, int depthLevel)
        {
            foreach (TreeNode subnode in node.Nodes)
            {
                ListNodes(subnode, depthLevel);
            }
                levels.Add(node.Level);
                indexs.Add(node.Index);

                myList.Add(new KeyValuePair<int, int>(node.Level, node.Index));
        }
    }
}

最后,我在 myList 键和值中看到例如:

0, 1
0, 4
3, 0
2, 1

左侧是级别,右侧是索引但我要添加的是对我自己的描述,因此在使用断点进行调试并查看列表时,我会看到如下内容:

Level = 0, Index = 1
Level = 0, Index = 4
Level = 3, Index = 0
Level = 2, Index = 1

所以更容易记住什么是级别,什么是索引。

这就是我解决它的方法。不是最好的方法,但它正在工作:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Dialog_System
{
    public partial class Form1 : Form
    {
        List<int> levels = new List<int>();
        List<int> indexs = new List<int>();
        List<KeyValuePair<string, string>> myList = new List<KeyValuePair<string, string>>();

        public Form1()
        {
            InitializeComponent();

            foreach (TreeNode node in advancedTreeView1.Nodes)
            {
                ListNodes(node, 1);
            }

            foreach (KeyValuePair<string, string> keyvalues in myList)
            {
                int levelkey = Int32.Parse(keyvalues.Key.Substring(8));
                int indexvalue = Int32.Parse(keyvalues.Value.Substring(8));
            }
        }


        void ListNodes(TreeNode node, int depthLevel)
        {
            foreach (TreeNode subnode in node.Nodes)
            {
                ListNodes(subnode, depthLevel);
            }

                levels.Add(node.Level);
                indexs.Add(node.Index);

                myList.Add(new KeyValuePair<string, string>(
                    "Level = " + node.Level.ToString(), "Index = " + node.Index.ToString()));
        }
    }
}

标签: c#winforms

解决方案


推荐阅读