如何添加数组到list并读出来?谢谢
本帖最后由 tylrr123 于 2013-09-10 22:44:25 编辑 我想实现一个功能,使用正则表达式抽取出顾客的购物信息(有15位顾客的信息,每个顾客的信息包括 姓名、价格、数量、下单时间、款式 共5条元素),存入二维数组中,然后再读取出来。但是我的代码读取出来的数组全部都是一样的,怀疑是添加出了问题,请教应该怎么样修改呢?谢谢
.........以上代码省略
string s = jieguo[0];
List<string> jieguo2 = new List<string>(); \\声明一维数组jieguo2
List<List<string>> jieguo3 = new List<List<string>>(); \\声明二维数组jieguo3
string pattern = @"sellername\\"""">(?<xing>(.*?))</span>.*?tb-rmb-num\\"""">(?<rmb>([\d.]+))</em>.*?tb-amount\\"""">(?<shuliang>(.*?))</td>.*?tb-time\\"""">(?<time>([-\d\s:]+))</td>.*?<p>(?<kuanshi>(.*?))</p>"; \\定义正则表达式
MatchCollection collection = Regex.Matches(s, pattern);\\ 抽出15位顾客的信息
foreach (Match match in collection)
{
GroupCollection gc = match.Groups;\\正则表达式的组group
jieguo2.Clear(); \\清除数组内容
jieguo2.Add(gc["xing"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["rmb"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["shuliang"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["time"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["kuanshi"].Value); \\添加元素到一维数组jieguo2
jieguo3.Add(jieguo2); \\添加一维数组jieguo2 到 二维数组jieguo3
}
for (i = 0; i < jieguo3.Count; i++)
{
for (int j = 0; j < 5; j++)
{
richTextBox1.Text = richTextBox1.Text + jieguo3[i][j] + "\r\n";
\\输出二维数组的元素
}
richTextBox1.Text = richTextBox1.Text + "---------------" + "\r\n";
}
目前代码的输出结果:
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
苏**柳
19.9
1
2013-09-07 12:44:21
默认款式
---------------
请问应该怎么样修改呢?谢谢大伙指点
List二维数组
[解决办法]
jieguo2.Clear();
=>
jieguo2 = new List<string>();
[解决办法]
把这句话放到foreach循环里:List<string> jieguo2 = new List<string>(); \\声明一维数组jieguo2
foreach (Match match in collection)
{
List<string> jieguo2 = new List<string>(); \\声明一维数组jieguo2
GroupCollection gc = match.Groups;\\正则表达式的组group
jieguo2.Clear(); \\清除数组内容
jieguo2.Add(gc["xing"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["rmb"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["shuliang"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["time"].Value); \\添加元素到一维数组jieguo2
jieguo2.Add(gc["kuanshi"].Value); \\添加元素到一维数组jieguo2
jieguo3.Add(jieguo2); \\添加一维数组jieguo2 到 二维数组jieguo3
}