我有一个名为str的数组,它由一系列以逗号分隔的对组成。例如,str [0]是“Bill,John”。我试图循环通过str并将逗号中的每一对拆分为名为First和Second的数组。我很难实现这个目标,如果有人能提供帮助我会非常感激。这是我正在使用的代码:
while (a < length)
{
var Pairs = str[a].Split(',');
Console.WriteLine(a + ": " + str[a]);
first[a] = Pairs[0];
second[a] = Pairs[1];
a++;
}
我遇到的问题是第一个[a]和第二个[a]行。我无法弄清楚这些变量应该是什么数据类型,似乎我为每个类型得到一个不同的错误,我在while循环之前声明它们。
以下是循环中变量实现的错误:
如果我将它们声明为数组:“不能将带有[]的索引应用于类型为'System.Array'的表达式”“
Array first;
Array second;
while (a < length)
{
var Pairs = str[a].Split(',');
Console.WriteLine(a + ": " + str[a]);
first[a] = Pairs[0];
second[a] = Pairs[1];
a++;
}
as int:“无法将带有[]的索引应用于类型为'int'的表达式”
int first;
int second;
while (a < length)
{
var Pairs = str[a].Split(',');
Console.WriteLine(a + ": " + str[a]);
first[a] = Pairs[0];
second[a] = Pairs[1];
a++;
}
as strings:“属性或索引器'string.this [int]'无法分配给 - 它只读”
string first;
string second;
while (a < length)
{
var Pairs = str[a].Split(',');
Console.WriteLine(a + ": " + str[a]);
first[a] = Pairs[0];
second[a] = Pairs[1];
a++;
}
as vars:“必须初始化隐式类型的局部变量”(此错误在声明上,而不在循环本身内。如果我初始化它,它会隐式转换为上述数据类型之一并抛出错误与他们联系,我已经提到了)
var first;
var second;
while (a < length)
{
var Pairs = str[a].Split(',');
Console.WriteLine(a + ": " + str[a]);
first[a] = Pairs[0];
second[a] = Pairs[1];
a++;
}
答案 0 :(得分:3)
基于新编辑:
好的,从不使用类型Array。它是内部的。要使用数组,您需要使用括号表示法(这看起来很奇怪,但它来自C,C ++和Java。)
看起来像这样:
string [10] first;
但是,在更现代的C#中,您可以使用泛型。它们在现代面向对象的世界中更有意义。要使用它们,请指定它们所操作的类型。在许多方面,它们的行为就像您期望阵列一样,但具有附加功能。要使用它们,在您的示例中,它看起来像这样:
ArrayList<string> first = new ArrayList<string>();
ArrayList<string> second = new ArrayList<string>();
foreach(string a in str)
{
var Pairs = a.Split(',');
first.Add(Pairs[0]);
second.Add(Pairs[1]);
}
在C#中执行此操作的简单方法是使用foreach循环。
int index = 0;
foreach(string a in str)
{
var Pairs = a.Split(',');
first[index] = Pairs[0];
second[index] = Pairs[1];
index++;
}
然而,你的代码可以工作 - 除了我没有看到长度来自哪里。也许你的代码应该是这样的?
int a = 0;
while (a < str.Length)
{
var Pairs = str[a].Split(',');
Console.WriteLine(a + ": " + str[a]);
first[a] = Pairs[0];
second[a] = Pairs[1];
a++;
}
答案 1 :(得分:0)
试试这个
string[] str = new string[1];
str[0] = "Bill,John";
string[] first = new string[1];
string[] second = new string[1];
string[] pairs = new string[1];
int a = 0;
while(a<str.Length)
{
pairs = str[a].Split(',');
first[a] = pairs[0];
second[a] = pairs[1];
Console.WriteLine(first[a] + " - " + second[a]);
a++;
}
int i = 0;
foreach (string item in str)
{
pairs = item.Split(',');
int k = pairs.Count();
first[i] = pairs[0];
second[i] = pairs[1];
Console.WriteLine(first[i] + " - " + second[i]);
i++;
}