我是团结的新手并且使用C#,实际上我是python开发人员我尝试制作一个只能包含唯一值的列表,如果有一些重复值,它将不允许进入列表
List<int> iList = new List<int>();
iList.Add(2);
iList.Add(3);
iList.Add(5);
iList.Add(7);
list = [2,3,5,7]
**在python中我们这样做是为了避免重复列表**
if(iList.indexof(value)!=-1){
iList.append(value)
}
但是我们应该在C#中做些什么才能获得非常相似的结果谢谢 您的努力将受到高度赞赏
答案 0 :(得分:8)
C#List有类似的方法:
if (!iList.Contains(value)) iList.Add(value);
或者您可以使用HashSet<int>
。在那里你不需要添加任何条件:
var hasSet = new HashSet<int>();
hashSet.Add(1);
hashSet.Add(1);
答案 1 :(得分:5)
**在C#中我们(可以)这样做是为了避免重复列表**
if (iList.IndexOf(value) == -1 ) {
iList.Add(value);
}
答案 2 :(得分:3)
HashSet将确保您只有一个任何对象的实例。如果你想拥有一个与对象本身不同的键,或者是一个词典。字典再次不允许重复键。
如果你试图复制一个HashSet,它就不会抛出异常而不会添加它。
字典会抛出重复的键异常。
答案 3 :(得分:2)
考虑构建您自己的列表类型,它永远不会添加重复项
public class NoDuplicatesList<T> : List<T>
{
public override Add(T Item)
{
if (!Contains(item))
base.Add(item);
}
}