将字符串添加到二维列表上的第一个维度
本文关键字:列表 第一个 二维 添加 字符串 | 更新日期: 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);
}
}
其中nodes1
是TreeNodeCollection
,FindIndex
找到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);
按对象的索引调用对象,但列表为空。