向整型数组中添加字符串列表项
本文关键字:字符串 列表 添加 整型 数组 | 更新日期: 2023-09-27 17:49:55
你好,我需要从字符串列表中取出字符串项并将其添加到int数组中,我尝试这样做,但它写错了我不能隐式地将int类型转换为int[]但是在序列I中,只向数组中的一个元素添加了一个int那么问题出在哪里呢
private void buttonGenerateO_Click(object sender, EventArgs e)
{
List<string> AgentNumbers = new List<string>();
List<string> AgentRide = new List<string>();
int pocet = AgentNumbers.Count;
int[][] dvouRozmernePole = new int[2][];
dvouRozmernePole[0] = new int[pocet];
dvouRozmernePole[1] = new int[pocet];
foreach (string AgeNumb in AgentNumbers)
{
for (int i = 0; i < dvouRozmernePole[0].Length; i++)
dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);
}
foreach (string AgeRide in AgentRide)
{
for (int i = 0; i < dvouRozmernePole[1].Length; i++)
dvouRozmernePole[i] = Convert.ToInt32(AgeRide);
}
看下面的声明:
int[][] dvouRozmernePole = new int[2][];
所以dvouRozmernePole
是数组的数组。现在看这里:
dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);
您正在尝试将int
值分配给dvouRozmernePole[i]
,您不能这样做,因为它应该是int[]
。
我怀疑你想:
dvouRozmernePole[0][i] = Convert.ToInt32(AgeNumb);
话虽如此,鉴于这些行:
List<string> AgentNumbers = new List<string>();
List<string> AgentRide = new List<string>();
int pocet = AgentNumbers.Count;
int[][] dvouRozmernePole = new int[2][];
dvouRozmernePole[0] = new int[pocet];
dvouRozmernePole[1] = new int[pocet];
…无论如何,你总是会有空列表,所以没有值要转换。
你真的需要使用数组吗?在任何地方使用List<T>
肯定会更简单。
LINQ也可以使这更简单。例如:
int[] numbers = AgentNumbers.Select(x => int.Parse(x)).ToArray();
int[] rides = AgentRide.Select(x => int.Parse(x)).ToArray();
int[][] dvouRozmernePole = { numbers, rides };
dvouRozmernePole
是一个int[]
的数组,而Convert.ToInt32
返回一个int
。因此在:
dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);
dvouRozmernePole[i]
是int[]
,而您正在尝试分配int
。
看起来你想要:
dvouRozmernePole[0][i] = Convert.ToInt32(AgeNumb);
和
dvouRozmernePole[1][i] = Convert.ToInt32(AgeRide);
你可以这样做:
int[][] dvouRozmernePole = new int[2][]
{
AgentNumbers.Select(num => Convert.ToInt32(num)).ToArray(),
AgentRide.Select(ride => Convert.ToInt32(ride)).ToArray()
};
这个错误很明显。在语句
中dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);
dvouRozmernePole是一个int型数组的数组
所以dvouRozmernePole[i]
期望和int[]而不是int值
试
你的意思是
for (int i = 0; i < dvouRozmernePole[0].Length; i++)
dvouRozmernePole[0][i] = Convert.ToInt32(AgeNumb);
}
foreach (string AgeRide in AgentRide)
{
for (int i = 0; i < dvouRozmernePole[1].Length; i++)
dvouRozmernePole[1][i] = Convert.ToInt32(AgeRide);
}