从列表中删除重复条目

本文关键字:删除 列表 | 更新日期: 2023-09-27 18:06:54

我有一个数组列表"Templist",在某个时间点之后,我看到很多重复的值被添加到数组列表中,所以我想到删除重复项。当我在谷歌上搜索时,我找到了一些解决方案,但大多数都令人困惑。有些地方它告诉我们排序,查找和删除重复项有些地方告诉我们使用distinct,有些地方告诉我们使用哈希列表。无论如何,我不想用其他结构代替数组列表。谁能给我提供逻辑,以防止重复数组列表?

现在我拥有的代码是

 public class Templist : ArrayList
 {
   //some logic behind arraylist
 }                     Templist items = new Templist();
                       if (!(obj is Testobject) && !(obj is Leafobject))
                       {
                          items.Add(obj);
                       }

                    if (items.Count > 0)
                    {
                       SSendObjectCollection(items);
                    }
                static public void SendObjectCollection(Templist col)
                {
                  try 
                  {
                       col.Sort();
                  }
                    catch(System.Exception exception)
                    {
                    }
                }

i did this code

public static string[] RemoveDuplicates(string[] s)
 {
     HashSet<string> set = new HashSet<string>(s);
     string[] result = new string[set.Count];
     set.CopyTo(result);
     return result;
 }

然后调用现有的函数SendObjectCollection()像RemoveDuplicates(col);但是它是抛出错误,谁能告诉我这里出了什么问题?

从列表中删除重复条目

你必须解决两个问题。首先,您必须使用:

删除重复的值
myArray = new Arraylist(myArray.Distinct().ToArray());

和在向数组列表添加值之前检查重复:

if(myArray.indexOf("value") == -1) {myArray.Add("value");}

希望对您有所帮助

请包括更多的信息,比如你在哪里添加项目到ArrayList。无论如何,你可以使用

ArrayList.Contain(somevalue) 

在添加前检查是否存在于ArrayList中,以避免重复