欢迎光临

木子屋

标题: List<T>.RemoveAll方法使用示例

作者: dnawo

日期: 2010-06-09 10:06 AM

分类: Web编程

内容: List<T>.RemoveAll允许你自定义删除条件，这主要依赖于它的参数，我们先看下它的签名：
复制内容到剪贴板 程序代码public int RemoveAll(Predicate<T> match);
Predicate是一个委托，我们再看下它的定义：
复制内容到剪贴板 程序代码public delegate bool Predicate<T>(T obj);
List<T>.RemoveAll方法在执行过程中，会将每项值传给函数match，若match返回true，则该项将被删除，否则不删除该项。下边我们来看个例子：
复制内容到剪贴板 程序代码using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//初始化
List<int> ids = new List<int>();
for (int i = 1; i <= 10; i++)
ids.Add(i);
//删除前
foreach(int id in ids)
Console.WriteLine(id);
Console.WriteLine("-----------------------------");
//删除
ids.RemoveAll(Predicate);
//删除后
foreach (int id in ids)
Console.WriteLine(id);

Console.Read();
}
/// <summary>
/// 定义List.RemoveAll要移除的元素应满足的条件
/// 当传入的项满足移除条件时返回true
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
static bool Predicate(int id)
{
return id % 2 == 0 ? true : false;
}
}
}
执行结果：
引用内容1
2
3
4
5
6
7
8
9
10
-----------------------------
1
3
5
7
9
类似的例子并不少见，JavaScript的Array.sort方法也是根据参数(函数)的返回值来判断任意两项的大小从而实现数组按自定义方式排序的。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.883 ms

返回

标题: List<T>.RemoveAll方法使用示例

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.883 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.914 ms

返回