C#用Array类的FindAll方法和List<T>类的Add方法按关键词在数组中检索元素并输出

目录

一、使用的方法

1. Array.FindAll(T[], Predicate) 方法

(1)定义

(2)示例

2.List类的常用方法

(1)List.Add(T) 方法

(2)List.RemoveAt(Int32) 方法

(3)List.Insert(Int32, T) 方法

(4)List.RemoveAll(Predicate) 方法

(5)List.RemoveRange(Int32, Int32) 方法

(6)示例

二、实例

1.源码

2.生成效果:


一、使用的方法

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
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wenchm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值