将字符串添加到二维列表上的第一个维度

本文关键字:列表 第一个 二维 添加 字符串 | 更新日期: 2023-09-27 18:30:39

>我创建了一个二维List。我想使用 for 循环为两个维度添加两个不同的字符串。但问题是,在第一维中保存我的字符串Add有任何选择。有人可以帮忙吗?

        List<Tuple<int, List<string>>> List_type1 = new List<Tuple<int, List<string>>>();
        List<Tuple<int, List<string>>> List_type2 = new List<Tuple<int, List<string>>>();            
        int indx1;
        int indx2;
        List<TreeNode> IndexList1 = new List<TreeNode>();
        IndexList1 = FindIndex(treeView1.Nodes, IndexList1);
        indx1 = IndexList1[0].Index;
        foreach (TreeNode node1 in nodes1)
        {
            for (int i = 0; i < actions1.Count; i++)
            {
                List_type1.Add(new Tuple<int, List<string>>(i, new List<string>()));
                TreeNode str1 = node1.Nodes[indx1].Nodes[i];
                string TypeAction1 = actions1[i].Attributes["type"].Value;
                string NameAction1 = actions1[i].Attributes["name"].Value;
                List_type1[i].Item1.Equals(TypeAction1);
                List_type1[i].Item2.Add(NameAction1);
            }
        }

其中nodes1TreeNodeCollectionFindIndex找到TreeNodes中的节点数。

将字符串添加到二维列表上的第一个维度

在你这样做的那一刻

List_type1[i].Item1.Equals(TypeAction1);

列表为空。您应该添加新元组,然后才进行比较。但是你的比较没用吗?因为不要使用它的结果。

另一种方法是在循环之前初始化列表。

或者,也许您混合了两行代码,您的意思是:

List_type1[i].Item2.Add(NameAction1);
List_type1[i].Item1.Equals(TypeAction1);

但无论如何,第二行代码没有任何意义。

我发现它可能如下所示:

        List<Tuple<int, List<string>, List<string>>> List_type1 = new List<Tuple<int, List<string>, List<string>>>();
        foreach (TreeNode node1 in nodes1)
        {
            for (int i = 0; i < actions1.Count; i++)
            {
                List_type1.Add(new Tuple<int, List<string>, List<string>>(i, new List<string>(), new List<string>()));
                TreeNode str1 = node1.Nodes[indx1].Nodes[i];
                list1.Add(str1);
                string TypeAction1 = actions1[i].Attributes["type"].Value;
                string NameAction1 = actions1[i].Attributes["name"].Value;
                List_type1[i].Item2.Add(TypeAction1);
                List_type1[i].Item3.Add(NameAction1);
            }
        }

或者另一种有用的方法是创建一个array

        string[,] Match_result = new string[list1.Count, 2];
        foreach (TreeNode node1 in nodes1)
        {
            for (int i = 0; i < actions1.Count; i++)
            {
                TreeNode str1 = node1.Nodes[indx1].Nodes[i];
                list1.Add(str1);
                string TypeAction1 = actions1[i].Attributes["type"].Value;
                string NameAction1 = actions1[i].Attributes["name"].Value;
                Match_result[i, 0] = TypeAction1;
                Match_result[i, 1] = NameAction1;
            }
        }

在行中:

List_type1[i].Item1.Equals(TypeAction1);

按对象的索引调用对象,但列表为空。