为泛型添加不重复的项关键是要覆盖强类型的项(对象所属类)里的Equals(object obj)方法。可参见以下代码:
1、定义一个类
[Serializable]
public class NameAndId
{
private long id;
private string name;
public long Id
{
get { return id; }
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public override bool Equals(object obj)
{
if (this.Id == ((NameAndId)obj).Id)
{
return true;
}
else
{
return false;
}
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
2、调用(代码片段)
List<NameAndId> list = new List<NameAndId>();
NameAndId nameAndId = null;
//在下面的代码里设置你要添加的项,一般都是使用循环语句实现的
//nameAndId = new NameAndId();
if (!list.Contains(nameAndId))
{
list.Add(nameAndId);
}
本文链接:http://www.fetso.cn/article/171.html,转载请保留。
分享到:
相关推荐
例如,我们可以创建一个泛型方法,接受一个包含待去重数据的集合作为输入,利用枚举遍历这个集合,并将每个元素添加到一个HashSet中,HashSet在插入时会自动检查并排除重复项。由于HashSet的查找和插入操作具有O(1)...
### C# 泛型详解 #### 一、关于 Java、C# 泛型的看法 - **C# 与 Java 泛型的区别与优劣** 在 IT 领域,尤其是面向对象编程...泛型是 C# 中一项重要的特性,掌握它的使用可以帮助开发者编写出更加高效、健壮的程序。
### C#2.0 泛型和强制类型转换 #### 泛型介绍 在C#2.0中,泛型是一种强大的特性,它允许程序员编写类型安全且高度可重用的代码。通过使用泛型,可以创建参数化的类型,这意味着在类、接口或方法中可以使用类型参数...
C#泛型是一种强大的编程工具,它允许在不指定具体数据类型的情况下定义类、接口和方法。这使得代码更具灵活性,同时保持了编译时类型安全性和运行时的高效性。在C#中,泛型主要体现在以下几个方面:泛型类、泛型接口...
- **类型擦除**:C#泛型使用了一种称为类型擦除的技术,在编译后,所有的类型参数被替换为其实际类型,生成的IL代码中没有类型参数的概念,只有具体的类型。 - **类型约束**:在定义泛型时,可以添加类型约束,如...
C#泛型是.NET框架中的一个强大特性,它允许我们创建可重用的类型,这些类型可以在多种数据类型上工作,而无需重复编写相同代码。泛型的主要目标是提高代码的类型安全性和性能,同时减少类型转换的需要。在本文中,...
6. **泛型集合**:.NET框架库提供了很多内置的泛型集合,如`List<T>`(动态数组)、`Dictionary, TValue>`(键值对集合)和`HashSet<T>`(不重复元素集合)。这些集合提供了丰富的操作方法,并利用泛型保持类型安全...
在C#编程中,方法异常和泛型是两个至关重要的概念。它们构成了C#语言功能的核心部分,并在软件开发中发挥着关键作用。理解和熟练掌握这两个主题,将有助于提升你的编程技能,无论你是初学者还是有经验的开发者。 ...
3. **代码重用性**:一个泛型栈类可以用于多种数据类型,无需为每种类型重复定义相同的逻辑。 #### 泛型约束 泛型还支持类型约束,这允许开发者指定类型参数必须满足的条件。例如,如果我们想要一个栈类,其中元素...
C#泛型与集合编程是.NET框架中非常重要的部分,它们极大地增强了代码的复用性和类型安全性。在C#中,泛型允许我们创建可适应多种数据类型的类、接口和方法,而集合则是一组对象的容器,如列表、字典等。 1. **List*...
C#泛型集合是.NET框架中一个非常重要的概念,它为开发者提供了强大的数据处理能力,同时保持了代码的高效性和类型安全。在C#中,泛型集合允许我们在不指定具体数据类型的情况下定义和操作数据结构,这极大地提高了...
### C#泛型详解 #### 一、为什么使用泛型? 在C#编程过程中,我们经常会遇到这样的场景:需要编写类似的功能,但是处理的数据类型各不相同。例如,可能需要编写一个栈(Stack)结构来处理整数(int),另一个栈来...
泛型是C#编程中的一项重要特性,它允许开发者创建可重用的代码,同时确保类型安全。在C#中,泛型通过参数化类型来实现,这意味着可以在一个泛型类或方法中使用一个或多个类型参数,这些参数将在实际使用时被具体的...
### C# 泛型基础讲解 #### 泛型概述 C# 2.0 版本引入了泛型这一重要特性,它极大地扩展了 C# ...无论是创建自定义的泛型类还是使用 .NET Framework 提供的标准泛型集合类,泛型都是现代 C# 编程不可或缺的一部分。
泛型的概念并不新鲜,类似于C++中的模板,但C#的泛型在设计上更为简洁和直观。 #### 三、为什么使用泛型? 1. **类型安全**:使用泛型可以确保在编译时类型正确性被验证,避免了运行时可能出现的类型转换错误。 2....
以下是关于C#泛型的一些关键知识点: 1. **泛型简介**:泛型是在.NET框架2.0版本中引入的,其目的是创建能够与多种数据类型一起工作的类、接口和方法,而无需进行显式类型转换,减少了运行时的类型检查和装箱拆箱...
例如,Java 提供了 `extends` 和 `super` 关键字来限定泛型参数的上下界,这是 C# 和 C++ 模板所不具备的功能。 - **示例:**文中提到了一个具体的例子,展示了如何在 Java 中利用 `? extends A` 来解决不同类型的...
总结,C#中的泛型集合是编程中不可或缺的一部分,它们提供了类型安全、性能优化和代码复用的优势。理解和熟练使用泛型集合对于提升C#编程能力至关重要。通过不断实践和探索,开发者可以更好地利用泛型集合来解决各种...
### C# 泛型培训理论 + ...泛型是C#中一个强大的特性,它不仅提高了代码的可读性和可维护性,还增强了类型安全性并减少了代码重复。通过学习和应用泛型的概念和技术,开发者可以编写出更加高效、健壮的软件应用程序。