如何使用C#in unity避免列表中的重复值

如何使用C#in unity避免列表中的重复值,c#,unity3d,c#-4.0,c#-3.0,unity5,C#,Unity3d,C# 4.0,C# 3.0,Unity5,我是unity的新手,使用C#,实际上我是python开发人员,我尝试创建一个只能保存唯一值的列表,如果出现重复值,它将不允许进入列表 List<int> iList = new List<int>(); iList.Add(2); iList.Add(3); iList.Add(5); iList.Add(7); 但我们在C#中应该做些什么才能获得非常相似的结果呢 您的努力将受到高度赞赏C#列表有类似的方法: 如果(!iList.Con

我是unity的新手,使用C#,实际上我是python开发人员,我尝试创建一个只能保存唯一值的列表,如果出现重复值,它将不允许进入列表

List<int> iList = new List<int>();
    iList.Add(2);
    iList.Add(3);
    iList.Add(5);
    iList.Add(7);
但我们在C#中应该做些什么才能获得非常相似的结果呢 您的努力将受到高度赞赏

C#列表有类似的方法:
如果(!iList.Contains(value))iList.Add(value)

或者,您可以使用
哈希集
。在这里,您不需要添加任何条件:

var hasSet = new HashSet<int>(); 
hashSet.Add(1);
hashSet.Add(1);
var hasSet=newhashset();
hashSet.Add(1);
hashSet.Add(1);
C#列表有类似的方法:
如果(!iList.Contains(value))iList.Add(value)

或者,您可以使用
哈希集
。在这里您不需要添加任何条件:

var hasSet = new HashSet<int>(); 
hashSet.Add(1);
hashSet.Add(1);
var hasSet=newhashset();
hashSet.Add(1);
hashSet.Add(1);

哈希集将确保任何对象只有一个实例。或者,如果希望具有与对象本身不同的键,则可以使用字典。同样,字典不允许重复键

如果您试图放入一个副本,哈希集不会抛出异常,它只是不会添加它


字典将抛出重复键异常

哈希集将确保任何对象只有一个实例。或者,如果希望具有与对象本身不同的键,则可以使用字典。同样,字典不允许重复键

如果您试图放入一个副本,哈希集不会抛出异常,它只是不会添加它


字典将抛出重复键异常

考虑建立自己类型的列表,该列表永远不会添加重复项

public class NoDuplicatesList<T> : List<T>
{
      public override Add(T Item) 
      {
         if (!Contains(item))
                base.Add(item);
      } 
}
公共类节点重复列表:列表
{
公共覆盖添加(T项)
{
如果(!包含(项目))
基础。添加(项目);
} 
}

考虑建立您自己类型的列表,该列表永远不会添加重复项

public class NoDuplicatesList<T> : List<T>
{
      public override Add(T Item) 
      {
         if (!Contains(item))
                base.Add(item);
      } 
}
公共类节点重复列表:列表
{
公共覆盖添加(T项)
{
如果(!包含(项目))
基础。添加(项目);
} 
}
**在C语言中,我们可以这样做以避免列表中出现重复**

if (iList.IndexOf(value) == -1 ) {
    iList.Add(value);
}
**在C中,我们可以这样做以避免列表中出现重复**

if (iList.IndexOf(value) == -1 ) {
    iList.Add(value);
}

条件不应该是iList.IndexOf(value)=-1吗?@S.Tarıkıetin:你说得对,谢谢;虽然我不知道Phyton,但也许OP也犯了同样的错误。条件不应该是iList.IndexOf(value)=-1
?@S.Tarıkıetin:你说得对,谢谢;虽然我不知道Phyton,也许OP也犯了同样的错误。但是HashSet实际上不是一个列表,它没有索引,也不能通过indexBut获取项目,HashSet实际上不是一个列表,它没有索引,也无法通过IndexHaks Brother获得时间和答案高度赞赏的项注意,使用哈希集不会保留时间和答案高度赞赏的entriesThaks Brother的顺序注意,使用哈希集不会保留Entries的顺序注意,使用哈希集/字典不会保留条目的顺序请注意,使用哈希集/字典不会保留条目的顺序