嘿伙计们,我有一个程序,我正在将所有行加载到一个文本框中,并将它们从 char :
它工作正常,但它复制了它。我得到的输出是:
ID: 1NAME: Stone
ID: 1NAME: Stone
ID: 2NAME: Grass
ID: 2NAME: Grass
ID: 3NAME: Dirt
ID: 3NAME: Dirt
什么时候输出应该是:
ID: 1NAME: Stone
ID: 2NAME: Grass
ID: 3NAME: Dirt
我的代码是:
foreach (String line in File.ReadAllLines("item.ids"))
{
items = line.Split(':');
foreach (String part in items)
{
addToList(specs, "ID: "+line.Split(':').First() + "NAME: "+line.Split(':').Last() );
}
}
我做错了什么?
最佳答案
我认为你需要为每一个松开内部。 保持对 addToList 的调用,不过
// for every line in the file....
foreach (String line in File.ReadAllLines("item.ids"))
{
//get the parts by splitting the line on the colon
items = line.Split(':');
//for every item in the parts (there are two parts, according to your code)
// so this will loop twice--adding your item twice
foreach (String part in items)
{
// you are splitting again, and this is not necessary
// you could just call items.First() or items[0]
// and items.Last() or items[1]
addToList(specs, "ID: "+ line.Split(':').First() +
"NAME: "+line.Split(':').Last() );
}
}
我会做这样的事情来修复它:
foreach (string line in File.ReadAllLines("item.ids"))
{
items = line.Split(':');
addToList(specs, "ID: " + items.First() +
"NAME: "+ items.Last() );
}
关于重复列表条目的 C# 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439892/