目录
1. Array.FindAll(T[], Predicate) 方法
(4)List.RemoveAll(Predicate) 方法
(5)List.RemoveRange(Int32, Int32) 方法
一、使用的方法
1. Array.FindAll<T>(T[], Predicate<T>) 方法
通过使用Array类的FindAll方法来实现根据指定条件在数组中检索元素的功能。
(1)定义
public static T[] FindAll<T> (T[] array, Predicate<T> match);
类型参数
T
数组元素的类型。
参数
array T[]
要搜索的从零开始的一维 Array。
match Predicate<T>
Predicate<T>,定义要搜索元素的条件。
返回
T[]
如果找到一个 Array,其中所有元素均与指定谓词定义的条件匹配,则为该数组;否则为一个空 Array。
例外
ArgumentNullException
array 为 null。
- 或 -
match 为 null。
(2)示例
// 创建一个包含 50 个随机数的数组,其值范围为 0 到 1000。
// 然后, FindAll 使用 lambda 表达式为搜索条件,
// 该表达式返回 300 到 600 范围内的值。
namespace _094_1
{
public class Example
{
public static void Main()
{
int[] values = GetArray(50, 0, 1000);
int lowBound = 300;
int upperBound = 600;
int[] matchedItems = Array.FindAll(values, x =>
x >= lowBound && x <= upperBound);
int i = 0;
foreach (int item in matchedItems)
{
Console.Write("{0} ", item);
i++;
if (i % 12 == 0)
{
Console.WriteLine();
}
}
//for (int ctr = 0; ctr < matchedItems.Length; ctr++)
//{
// Console.Write("{0} ", matchedItems[ctr]);
// if ((ctr + 1) % 12 == 0)
// Console.WriteLine();
//}
}
/// <summary>
/// 随机生成整型数组
/// </summary>
/// <param name="n">数组元素个数</param>
/// <param name="lower">范围的下</param>
/// <param name="upper">范围的上</param>
/// <returns></returns>
private static int[] GetArray(int n, int lower, int upper)
{
Random rnd = new();
List<int> list = [];
for (int ctr = 1; ctr <= n; ctr++)
list.Add(rnd.Next(lower, upper + 1));
return [.. list];//等效于return list.ToArray();
}
}
}
// 运行结果:
/*
476 417 509 391 461 327 383 500 359 489 495 582
543 313 596 568
*/