将字符串列表项添加到int数组

时间:2012-12-30 21:39:35

标签: c# arrays string list int

你好我需要从字符串列表中获取字符串项并将其添加到int数组中我尝试这样但是它写我错误不能将int类型转换为int [] 但是对于序列我只在数组中的一个项目中添加一个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);

        }

4 个答案:

答案 0 :(得分:2)

看看这个宣言:

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 };

答案 1 :(得分:0)

错误很明显。在声明中

dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);

为数组分配一个整数。

答案 2 :(得分:0)

dvouRozmernePoleint[]的数组,而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()
};

初始化数组。

答案 3 :(得分:0)

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);

    }