向整型数组中添加字符串列表项

本文关键字:字符串 列表 添加 整型 数组 | 更新日期: 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);
    }