c#数组查找元素

包括通过查找数组中某个元素的下标(第一次出现时的下标,最后一次出现时的下标),查找某个数组中是否有某元素。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study1_repeat
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] intArr = { 1, 2, 3, 4, 5, 6, 3, 5, 3 };
            int value1 = 3;
            int value2 = 8;
            int first1 = Array.IndexOf(intArr, value1);
            //查找value1第一次出现的索引
            int first2 = Array.IndexOf(intArr, value2);

            int end1 = Array.LastIndexOf(intArr, value1);
            int end2 = Array.LastIndexOf(intArr, value2);
            //查找最后一次出现的索引
            int result1 = Array.BinarySearch(intArr, value1);
            int result2 = Array.BinarySearch(intArr, value2);
            //查找value1第一次出现的索引,这个方法采用二分法搜索。
            bool contain1;
            bool contain2;
            //定义两个布尔值。

            if (((System.Collections.IList)intArr).Contains(value1))
            {
                contain1 = true;
            }
            else {
                contain1 = false;
            }

            if (((System.Collections.IList)intArr).Contains(value2)) {
                contain2 = true;
            }
            else
            {
                contain2 = false;
            }
            //将结果输出出来
            Console.WriteLine("数组中的一个{0}的下标为:{1}", value1, first1);
            Console.WriteLine("数组中的一个{0}的下标为:{1}", value2, first2);
            Console.WriteLine("数组中的最后一个{0}的下标为:{1}", value1, end1);
            Console.WriteLine("数组中的最后一个{0}的下标为:{1}", value2, end2);
            Console.WriteLine("数组中{0}的下标为:{1}", value1, result1);
            Console.WriteLine("数组中{0}的下标为:{1}", value2, result2);
            if (contain1)
            {
                Console.WriteLine("数组中包含{0}", value1);
            }
            else {
                Console.WriteLine("数组中不包含{0}", value1);
            }
            if (contain2)
            {
                Console.WriteLine("数组中包含{0}", value2);
            }
            else
            {
                Console.WriteLine("数组中不包含{0}", value2);
            }
            Console.ReadLine();
        }
    }
}
  • Array.IndexOf(intArr, value1)、Array.LastIndexOf(intArr, value1)、Array.BinarySearch(intArr, value2)在找到相应的元素时会返回找到的元素的下标,如果没有找到的话,前两者会返回-1,最后一种会返回一个负数。
  • Array的Constains方法(用来查找某个元素是否存在)是对IList中的方法的实现,所以在使用时要先将其转换为IList对象,转换格式为((System.Collections.IList)intArr).Contains(元素)
  • 其中(System.Collections.IList)intArr是将intArr强制转化为IList类型,再外面的括号是为了将转化后的作为一个整体调用constains方法。

输出效果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值