Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重复列表条目的C#问题_C#_Arrays_Split_Duplicates - Fatal编程技术网

重复列表条目的C#问题

重复列表条目的C#问题,c#,arrays,split,duplicates,C#,Arrays,Split,Duplicates,嘿,伙计们,我有一个程序,我正在将所有行加载到一个文本框中,并将它们从字符中拆分出来。: 它工作得很好,但它复制了它。我得到的结果是: 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 (S

嘿,伙计们,我有一个程序,我正在将所有行加载到一个文本框中,并将它们从字符中拆分出来。

它工作得很好,但它复制了它。我得到的结果是:

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

这是你的第二个循环。不需要:

foreach (String line in File.ReadAllLines("item.ids"))
{
    items = line.Split(':');
    addToList(specs, "ID: "+line.Split(':').First() + "NAME: "+line.Split(':').Last() );

}

如果查看您的代码,您的代码没有使用
部分
,而是循环来自
拆分(':')
的结果,这将为您提供一个长度为2的字符串数组

您是否确保正在读取的文件中没有重复的行或行上的条目

如果您插入到
哈希集中,或对现有列表运行LINQ Distinct()查询,则可以避免最终结果重复。

请提供addToList()和输入