c#

位置:IT落伍者 >> c# >> 浏览文章

.net中的List的使用


发布日期:2022年06月11日
 
.net中的List的使用

在开发称重软件过程中用到了各种各样的技术框架和概念个人接触比较多点的还是List<T> 了也比较感兴趣毕中的List<T>非常方便但是很遗憾是没有自带更方便的一些排序查找之类的函数很多都得我们自己写函数这非常的麻烦其实这些方法想要的只是一个一句话的delegate而已下面主要讨论三个方法List<T>Sort();List<T>Find();List<T>Exist();

首先看List<T>Sort()其定义是public void Sort( Comparison<T> comparison );要求传入的参数是Comparison<T> comparison那就看看Comparison<T> comparison 要求我们传入哪些参数以及返回什么样的值查阅MSDN后我们发现Comparison<T> 要求我们传入两个T的示例即t和t返回结果是整数如果t<t返回如果相等返回如果t>t返回和字符串比较的返回方式一样于是我们可以这样设计delegate:listVideoItemsSort(delegate(VideoItem v VideoItem v) { return Comparer<string>DefaultCompare(vTitle vTitle); });

上面的代码是对实体的Title属性进行排序采用字符串比较的返回值作为delegate的返回值

接下来我们看看List<T>Find()和List<T>Exist()

Find()的定义如下public T Find( Predicate<T> match )

Exist也类似public bool Exists( Predicate<T> match )

所以只要我们设计好Predicate<T> match 这个参数的delegateFind()和Exists()这两个函数我们都可以用了查询MSDN发现Predicate<T> 要求我们传入一个T的实体并返回这个T是不是存在的布尔结果因此我们就可以写出VideoItem video= listVideoItemsFind(delegate(VideoItem v) { return vTitle== xxxxx; }) 这代码表示按照标题查找实体当然xxxxx可以替换成变量和硬代码vTitle == xxxxx 这种方式也可以改为 vMinutes > 或其他只要能返回布尔结果即可

同样的delegate也可以用在Exists()中

bool flag= listVideoItemsExists(delegate(VideoItem v) { return vMinutes > ;})

最后List<T>当中还有一个非常好用的FindAll()方法也相当好用相信看完本文的朋友马上就能写出delegate来

上一篇:.Net开发人员应该下载的十种必备工具

下一篇:c#中通过设置钩子监视鼠标移动