在foreach中我需要一些帮助:
我的代码:
var Content = "nickname:Steven ID:01 nickname:pascal ID:02 nickname:nils ID:03";
var v = Content.Split().Where(l => l.StartsWith("nickname:")).ToList();
var c = Content.Split().Where(l => l.StartsWith("ID:")).ToList();
for(int i = 0; i < v.Count(); i++)
{
var x = v[i];
foreach (var o in c)
{
var b = o;
listBox1.Items.Add(x + " - " + b);
}
}
输出:
nickname:Steven - ID:01
nickname:Steven - ID:02
nickname:Steven - ID:03
nickname:pascal - ID:01
nickname:pascal - ID:02
nickname:pascal - ID:03
nickname:nils - ID:01
nickname:nils - ID:02
nickname:nils - ID:03
我只想显示昵称和ID,但是出了点问题。 我不知道该如何解决。
最好的问候
答案 0 :(得分:2)
如果要使用正则表达式替代,
SetWindowPos
答案 1 :(得分:1)
您不需要两个循环,这就是为什么它会提供您不想要的结果的原因。 记住,内循环对于外循环的每个值完全运行
我已为您更正了代码:
var Content = "nickname:Steven ID:01 nickname:pascal ID:02 nickname:nils ID:03";
var v = Content.Split().Where(l => l.StartsWith("nickname:")).ToList();
var c = Content.Split().Where(l => l.StartsWith("ID:")).ToList();
for(int i = 0; i < v.Count(); i++)
{
var x = v[i];
var ids = c[i];
Console.Write(x.ToString() + " - ");
Console.WriteLine(ids.ToString());
}
答案 2 :(得分:1)
尝试一下:
var Content = "nickname:Steven ID:01 nickname:pascal ID:02 nickname:nils ID:03";
var strs=Content.Split(' ');
for(int i = 0; i < strs.Count(); i+=2)
{
var name = strs[i].Split(':')[1];
var id = strs[i+1].Split(':')[1];
Console.WriteLine(name + " - " + id);
}
答案 3 :(得分:1)
问题仅在于循环方式。以下是正确循环的方法。
for (int i = 0; i < v.Count(); i++)
{
listBox1.Items.Add(v[i] + " - " + c[i]);
}