C#编程,使用泛型查找不同类型数组中的值(源代码)[通俗易懂]

C#编程,使用泛型查找不同类型数组中的值(源代码)[通俗易懂]实际应用中查找或遍历数组中的值时,有时因为数组类型的不同,需要对不同的数组进行操作。那么可以使用同一种方法对不同类型的数组进行操作吗?答案是肯定

大家好,欢迎来到IT知识分享网。

实际应用中查找或遍历数组中的值时,有时因为数组类型的不同,需要对不同的数组进行操作。那么可以使用同一种方法对不同类型的数组进行操作吗?答案是肯定的。下面我们将使用一个泛型方法,对不同类型的数组进行操作,当用户选择相应的字符串、整型、布尔类型以及日期类型等不同类型的数组时,将分别进行显示相应的元素在数组中的索引位置。

程序界面:

C#编程,使用泛型查找不同类型数组中的值(源代码)[通俗易懂]

程序运行界面

程序代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class TypesTFindArray : Form
    {
        public TypesTFindArray()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 定义一个类Seek,通过类中的泛型方法对不同数据类型的数组进行遍历查找特定元素
        /// </summary>
        public class Seek
        {
            // 定义一个泛型方法,用来查找指定值在数组中的索引
            public static int Find<T>(T[] array, T element)
            {
                for (int i = 0; i < array.Length; i++)//遍历泛型数组
                {
                    if (array[i].Equals(element))//判断是否找到了指定值
                    {
                        return i;//返回指定值在数组中的索引
                    }
                }
                return -1;//如果没有找到,返回-1
            }
        }
        /// <summary>
        /// 选择不同类型的数组,使用泛型查找指定值在数组中的索引
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonOk_Click(object sender, EventArgs e)
        {
            if(radioButtonStr.Checked)
            {
                string[] StrArray = new string[] { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};//声明一个字符串类型的数组
                label1.Text= "星期四的索引值为:" + (Seek.Find<string>(StrArray, "星期四").ToString());//查找字符串“星期三”在数组中的索引
            }
            if (radioButtonInt.Checked)
            {
                int[] IntArray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };//声明一个整数类型的数组
                label1.Text = "9的索引值为:" + (Seek.Find<int>(IntArray, 9).ToString());//查找数字3在数组中的索引
            }
            if (radioButtonBool.Checked)
            {
                bool[] BoolArray = new bool[] { true, false };//声明一个布尔类型的数组
                label1.Text = "false的索引值为:" + (Seek.Find<bool>(BoolArray, false).ToString());//查找false在数组中的索引
            }
            if (radioButtonDate.Checked)
            {
                //声明一个日期类型的数组
                DateTime[] DateArray = new DateTime[] { DateTime.Parse("2021-12-11"), DateTime.Parse("2021-12-12"), DateTime.Parse("2021-12-13"), DateTime.Parse("2021-12-14") };
                label1.Text = "2021-12-13的索引值为:"+(Seek.Find<DateTime>(DateArray, DateTime.Parse("2021-12-13")).ToString());//查找字符串“三”在数组中的索引
            }
        }
    }
}

IT知识分享网

结语:

泛型方法是在声明中包括了类型参数T的方法。泛型方法可以在类结构或接口声明中来定义,这些类、结构或接口本身可以是泛型或非泛型。如果在泛型类型声明中来声明泛型方法,则方法体可以同时引用该方法的类型参数T和包含该方法声明的类型参数T。

通常情况下,建议开发人员使用泛型集合,因为这样可以获得类型安全的直接优点,而不需要从基类派生并实现类型特定的成员。此外,如果集合元素为值类型,泛型集合类型的性能通常优于对应的非泛型集合类型,并优于从非泛型基类派生的类型,因为使用泛型时不必对元素进行装箱操作。

喜欢的请关注、收藏、转发!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6765.html

(0)
上一篇 2022-12-20 18:50
下一篇 2022-12-20 19:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信