大家好,欢迎来到IT知识分享网。
实际应用中查找或遍历数组中的值时,有时因为数组类型的不同,需要对不同的数组进行操作。那么可以使用同一种方法对不同类型的数组进行操作吗?答案是肯定的。下面我们将使用一个泛型方法,对不同类型的数组进行操作,当用户选择相应的字符串、整型、布尔类型以及日期类型等不同类型的数组时,将分别进行显示相应的元素在数组中的索引位置。
程序界面:
程序代码:
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