C# List<T> Contains<T>()的用法小结
泛型List<T>中有一个比较列表是否已包含对象的方法Contains<T>(),今天在网上搜了一个用法,记录下来,备查。
要用此方法比较我们的自定义对象,首先要有一个比较器,
要注意的是,这里的比较器是实现IEqualityComparer<T>接口的,不要写成IComparer<T>。
/// <summary>
/// 描 述:弹出模型对象列表比较器(根据ID比较)
/// </summary>
public class PopupComparer : IEqualityComparer<Model.PopupModel.PopupModel>
{
public static PopupComparer Default = new PopupComparer();
#region IEqualityComparer<PopupModel> 成员
public bool Equals(Model.PopupModel.PopupModel x, Model.PopupModel.PopupModel y)
{
return x.Id.Equals(y.Id);
}
public int GetHashCode(Model.PopupModel.PopupModel obj)
{
return obj.GetHashCode();
}
#endregion
}
然后我们就可以调用Contains<T>()方法了,如下:
代码如下:
List<PopupModel> list = new List<PopupModel>();
//model为要比较的对象
if(list.Contains<PopupModel>(model,PopupComparer.Default))
{
}
相关推荐
-
关于C#泛型列表List<T>的基本用法总结
示例代码如下:namespace SampleListT{ class Program { static void Main(string[] args) {//using System.Collections.Generic; 命名空间中的List<T>//using System.Collections; 命名空间中的ArrayList //都实现了列表集合,一个是泛形集合,一个是非泛型的//下面我们将Person对象加到集合中 Person p1 = new P
-
C#中Array与ArrayList用法及转换的方法
ArrayList与Array的区别概述 ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例如: Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的.如果更改了 ArrayList.Capacity 属性的值,则自动进行内存重新分配和元素复制. ArrayList 提供添加.插入或移除某一范围元素的方法.在 Array 中,您只能一次获取或设置一个元素的值. 使用 Syn
-
C#中Arraylist的sort函数用法实例分析
本文实例讲述了C#中Arraylist的sort函数用法.分享给大家供大家参考.具体如下: ArrayList的sort函数有几种比较常用的重载: 1.不带参数 2.带一个参数 public virtual void Sort( IComparer comparer ) 参数 comparer 类型:System.Collections.IComparer 比较元素时要使用的 IComparer 实现. - 或 - null 引用(Visual Basic 中为 Nothing)将使用每个元数的
-
C# List<T>的用法小结
所属命名空间:System.Collections.Generic public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable List<T>类是 ArrayList 类的泛型等效类.该类使用大小可按需动态增加的数组实现 IList<T> 泛型接口. 泛型的好处: 它为使用c#语言编写面向对象程
-
C# List中FindAll用法的一些简单示例
如下所示: 复制代码 代码如下: using System;using System.Collections.Generic; public partial class List : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { CreateList(); } private void CreateList() { List<string>
-
C#中list用法实例
本文实例讲述了C#中list用法.分享给大家供大家参考,具体如下: protected void Page_Load(object sender, EventArgs e) { List<string> studentNames = new List<string>(); studentNames.Add("John"); studentNames.Add("Mary"); studentNames.Add("Rose")
-
C#基础教程之IComparable用法,实现List<T>.sort()排序
List<T>.sort()可以实现对T的排序,比如List<int>.sort()执行后集合会按照int从小到大排序.如果T是一个自定义的Object,可是我们想按照自己的方式来排序,那该怎么办呢,其实可以用过IComparable接口重写CompareTo方法来实现.流程如下: 一.第一步我们申明一个类Person但是要继承IComparable接口: 复制代码 代码如下: using System; using System.Collections.Generic; usin
-
Java中String.split()用法小结
在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1.如果用"."作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 2.如果用"|"作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.s
-
mybatis 中 foreach collection的用法小结(三种)
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. item表示集合中每一个元素进行迭代时的别名, index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置, open表示该语句以什么开始, separator表示在每次进行迭代之间以什么符号作为分隔 符, close表示以什么结束. 在使用foreach的时候
-
JS产生随机数的用法小结
代码如下所述: <script> function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); return(Min + Math.round(Rand * Range)); } var num = GetRandomNum(1,10); alert(num); </script> var chars = ['0','1','2','3','4','5','6','7','8','
-
详解PHP中cookie和session的区别及cookie和session用法小结
具体来说 cookie 是保存在"客户端"的,而session是保存在"服务端"的 cookie 是通过扩展http协议实现的 cookie 主要包括 :名字,值,过期时间,路径和域: 如果cookie不设置生命周期,则以浏览器关闭而关闭,这种cookie一般存储在内存而不是硬盘上.若设置了生命周期则相反,不随浏览器的关闭而消失,这些cookie仍然有效直到超过设定的过 期 时间. session 一种类似散列表的形式保存信息, 当程序需要为某个客户端的请求创建一个
-
MySql数据库中Select用法小结
一.条件筛选 1.数字筛选:sql = "Select * from [sheet1$] Where 销售单价 > 100" 2.字符条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 3.日期条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 4.区间条件:sql = "Select * from [sheet1$] Wh
-
javaScript产生随机数的用法小结
var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; function generateMixed(n) { var res = ""; for(var i = 0; i < n ; i ++) { var id = M
-
C/C++ 中const关键字的用法小结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性. Const作用 NO. 作用 说明 参考 1 可以定义const常量 const int Max = 100; 2 便于进行类型检查 const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误 void f(const int i) { ---} //对传入的参数进行类型检查,不匹配进行提示 3 可以保护被修
-
基于BigDecimal.setScale的用法小结
1. BigDecimal num1 = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失 2. BigDecimal num2 = new BigDecimal(2);//这种写法是可以的 3. BigDecimal num = new BigDecimal("2.225667");//一般都会这样写最好 4. int count = num.scale(); System.out.println(count);//6 返回的是小数点后位数 好了,
-
C++语言中std::array的用法小结(神器用法)
摘要:在这篇文章里,将从各个角度介绍下std::array的用法,希望能带来一些启发. td::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能.也正因此,使得std::array有很多与其他容器不同的特殊之处,比如:std::array的元素是直接存放在实例内部,而不是在堆上分配空间:std::array的大小必须在编译期确定:std::array的构造函数.析构函数和赋值操作符都是编译器隐式声明的--这让很多用惯了std::vector这类容器的程
-
Mysql exists用法小结
简介 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False. EXISTS 指定一个子查询,检测行的存在.语法:EXISTS subquery.参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字).结果类型为 Boolean,如果子查询包含行,则返回 TRUE. 示例 一张活动配置主表activity_main,通过act_code来唯一标明一场活动,活动举办地点适配表acti
随机推荐
- js表单登陆验证示例
- 用window.location.href实现刷新另个框架页面
- java中对Redis的缓存进行操作的示例代码
- Java多线程的调度_动力节点Java学院整理
- 利用javascript实现全部删或清空所选的操作
- 关于PHP堆栈与列队的学习
- python实现的二叉树算法和kmp算法实例
- python 异常处理总结
- 详解Python的Lambda函数与排序
- Vue.js中extend选项和delimiters选项的比较
- 详解修改docker启动默认网桥docker0为自定义网桥
- Android自定义控件简单实现侧滑菜单效果
- 通过Javascript创建一个选择文件的对话框代码
- js获取IFRAME当前的URL的方法
- JavaScript中Form表单技术汇总(推荐)
- Android SQLite数据库的增 删 查找操作
- rsync 只同步目录结构不同步文件的方法
- 搜索引擎优化应该重视什么?
- 下一代Shell脚本语言,Windows Power Shell!
- Android新建Activity的方法