当前位置: 首页 > news >正文

wordpress 导出csv搜索引擎优化的含义

wordpress 导出csv,搜索引擎优化的含义,甘南北京网站建设,mysql python开发网站开发目录 数组工具类基本操作 1.排序:升序,降序 2.查找 1)查找最值:最大值,最小值 2)查找满足条件的单个对象 3)查找满足条件的所有对象 4)选取数组中所有对象的某一字段 完整代…

目录

数组工具类基本操作

1.排序:升序,降序

2.查找

1)查找最值:最大值,最小值

2)查找满足条件的单个对象

3)查找满足条件的所有对象

4)选取数组中所有对象的某一字段

完整代码

测试

1.测试代码

2.测试结果


       本篇文章来分享一下如何实现数组工具类。工具类,一般具有很强的通用性,复用性很强,在需要时就可以移植到项目,可以让我们的工作更加快捷方便。今天要分享的数组工具类实现了有关数组基本操作。

数组工具类基本操作

1.排序:升序,降序

       可以参考 【一文读懂】C#如何实现通用的排序功能 进行理解

/// <summary>
/// 选择委托
/// 返回数据类型T的属性Tkey的值
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <typeparam name="Tkey">数据类型T的字段</typeparam>
/// <returns>选择的属性</returns>
public delegate TKey SelectHandler<T, TKey>(T t);//注意是写在类外/// <summary>
/// 使用委托对任何数据类型数组进行升序排序
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <typeparam name="Tkey">数据类型T的字段</typeparam>
/// <param name="array">数据类型T的数组</param>
/// <param name="selectHandler">选择委托的对象</param>
public static void OrderBy<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>
{for (int i = 0; i < array.Length; ++i){for (int j = i + 1; j < array.Length; ++j){//将委托已经取得数据类型的属性的进行比较if (selectHandler(array[i]).CompareTo(selectHandler(array[j])) > 0){T temp = array[i];array[i] = array[j];array[j] = temp;}}}
}/// <summary>
/// 使用委托对任何数据类型数组进行降序排序
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <typeparam name="Tkey">数据类型T的字段</typeparam>
/// <param name="array">数据类型T的数组</param>
/// <param name="selectHandler">选择委托的对象</param>
public static void OrderByDescending<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>
{for (int i = 0; i < array.Length; ++i){for (int j = i + 1; j < array.Length; ++j){//将委托已经取得数据类型的属性的进行比较if (selectHandler(array[i]).CompareTo(selectHandler(array[j])) < 0){T temp = array[i];array[i] = array[j];array[j] = temp;}}}
}

2.查找

1)查找最值:最大值,最小值

/// <summary>
/// 查找最大值
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <typeparam name="Tkey">数据类型T的字段</typeparam>
/// <param name="array">数据类型T的数组</param>
/// <param name="selectHandler">选择委托的对象</param>
/// <returns>返回T类型的数组中字段Tkey最大的数据</returns>
public static T Max<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>
{T temp = array[0];for (int i = 1; i < array.Length; ++i){//将委托已经取得数据类型的属性的进行比较if (selectHandler(temp).CompareTo(selectHandler(array[i])) < 0){temp = array[i];}}return temp;
}/// <summary>
/// 查找最小值
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <typeparam name="Tkey">数据类型T的字段</typeparam>
/// <param name="array">数据类型T的数组</param>
/// <param name="selectHandler">选择委托的对象</param>
/// <returns>返回T类型的数组中字段Tkey最大的数据</returns>
public static T Min<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>
{T temp = array[0];for (int i = 1; i < array.Length; ++i){//将委托已经取得数据类型的属性的进行比较if (selectHandler(temp).CompareTo(selectHandler(array[i])) > 0){temp = array[i];}}return temp;
}

2)查找满足条件的单个对象

/// <summary>
/// 查找条件委托 表示一个查找条件
/// 数据t是否满足某个条件
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="t">数据类型T的对象</param>
/// <returns>bool值</returns>
public delegate bool FindHandler<T>(T t);//注意是写在类外/// <summary>
/// 查找单个(第一个)满足条件的对象
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="array">数据类型T的数组</param>
/// <param name="findHandler">查找条件委托</param>
/// <returns>返回第一个满足条件的类型为T的对象</returns>
public static T Find<T>(T[] array, FindHandler<T> findHandler)
{T temp = default;for (int i = 0; i < array.Length; ++i){if (findHandler(array[i])){return array[i];}}return temp;
}

3)查找满足条件的所有对象

/// <summary>
/// 查找满足条件的所有对象
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="array">数据类型T的数组</param>
/// <param name="findHandler">查找条件委托</param>
/// <returns>返回 所有 满足条件的,类型为T的 对象</returns>
/// 
public static T[] FindAll<T>(T[] array, FindHandler<T> findHandler)
{List<T> res = new List<T>();for (int i = 0; i < array.Length; ++i){if (findHandler(array[i])){res.Add(array[i]);}}return res.ToArray();
}

4)选取数组中所有对象的某一字段

/// <summary>
/// 选取数组中所有对象的某一字段
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <typeparam name="Tkey">数据类型T的字段</typeparam>
/// <param name="array">数据类型T的数组</param>
/// <param name="selectHandler">选择委托的对象</param>
/// <returns>返回数组中所有对象的某一字段组成的数组</returns>
public static Tkey[] Select<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)
{Tkey[] res = new Tkey[array.Length];for (int i = 0; i < array.Length; ++i){res[i] = selectHandler(array[i]);}return res;
}

完整代码

using System;
using System.Collections.Generic;/// <summary>
/// 选择委托
/// 返回数据类型T的属性Tkey的值
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <typeparam name="Tkey">数据类型T的字段</typeparam>
/// <returns>选择的属性</returns>
public delegate TKey SelectHandler<T, TKey>(T t);/// <summary>
/// 查找条件委托 表示一个查找条件
/// 数据t是否满足某个条件
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="t">数据类型T的对象</param>
/// <returns>bool值</returns>
public delegate bool FindHandler<T>(T t);/// <summary>
/// 数组助手类
/// 排序:升序 降序
/// 查找:最大 最小 单个 全部...
/// </summary>
public static class ArrayHelper
{/// <summary>/// 升序排序(冒泡排序)/// 使用委托对任何数据类型数组进行排序/// </summary>/// <typeparam name="T">数据类型</typeparam>/// <typeparam name="Tkey">数据类型T的字段</typeparam>/// <param name="array">数据类型T的数组</param>/// <param name="selectHandler">选择委托的对象</param>public static void OrderBy<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>{for (int i = 0; i < array.Length; ++i){for (int j = i + 1; j < array.Length; ++j){//将委托已经取得数据类型的属性的进行比较if (selectHandler(array[i]).CompareTo(selectHandler(array[j])) > 0){T temp = array[i];array[i] = array[j];array[j] = temp;}}}}/// <summary>/// 降序排序(冒泡排序)/// 使用委托对任何数据类型数组进行排序/// </summary>/// <typeparam name="T">数据类型</typeparam>/// <typeparam name="Tkey">数据类型T的字段</typeparam>/// <param name="array">数据类型T的数组</param>/// <param name="selectHandler">选择委托的对象</param>public static void OrderByDescending<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>{for (int i = 0; i < array.Length; ++i){for (int j = i + 1; j < array.Length; ++j){//将委托已经取得数据类型的属性的进行比较if (selectHandler(array[i]).CompareTo(selectHandler(array[j])) < 0){T temp = array[i];array[i] = array[j];array[j] = temp;}}}}/// <summary>/// 查找最大值/// </summary>/// <typeparam name="T">数据类型</typeparam>/// <typeparam name="Tkey">数据类型T的字段</typeparam>/// <param name="array">数据类型T的数组</param>/// <param name="selectHandler">选择委托的对象</param>/// <returns>返回T类型的数组中字段Tkey最大的数据</returns>public static T Max<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>{T temp = array[0];for (int i = 1; i < array.Length; ++i){//将委托已经取得数据类型的属性的进行比较if (selectHandler(temp).CompareTo(selectHandler(array[i])) < 0){temp = array[i];}}return temp;}/// <summary>/// 查找最小值/// </summary>/// <typeparam name="T">数据类型</typeparam>/// <typeparam name="Tkey">数据类型T的字段</typeparam>/// <param name="array">数据类型T的数组</param>/// <param name="selectHandler">选择委托的对象</param>/// <returns>返回T类型的数组中字段Tkey最大的数据</returns>public static T Min<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler)where Tkey : IComparable<Tkey>{T temp = array[0];for (int i = 1; i < array.Length; ++i){//将委托已经取得数据类型的属性的进行比较if (selectHandler(temp).CompareTo(selectHandler(array[i])) > 0){temp = array[i];}}return temp;}/// <summary>/// 查找(单个)第一个满足条件的对象/// </summary>/// <typeparam name="T">数据类型</typeparam>/// <param name="array">数据类型T的数组</param>/// <param name="findHandler">查找条件委托</param>/// <returns>返回第一个满足条件的类型为T的对象</returns>public static T Find<T>(T[] array, FindHandler<T> findHandler){T temp = default;for (int i = 0; i < array.Length; ++i){if (findHandler(array[i])){return array[i];}}return temp;}/// <summary>/// 查找所有满足条件的对象/// </summary>/// <typeparam name="T">数据类型</typeparam>/// <param name="array">数据类型T的数组</param>/// <param name="findHandler">查找条件委托</param>/// <returns>返回所有满足条件的类型为T的对象</returns>/// public static T[] FindAll<T>(T[] array, FindHandler<T> findHandler){List<T> res = new List<T>();for (int i = 0; i < array.Length; ++i){if (findHandler(array[i])){res.Add(array[i]);}}return res.ToArray();}/// <summary>/// 选取数组中所有对象的某一字段/// </summary>/// <typeparam name="T">数据类型</typeparam>/// <typeparam name="Tkey">数据类型T的字段</typeparam>/// <param name="array">数据类型T的数组</param>/// <param name="selectHandler">选择委托的对象</param>/// <returns>返回数组中所有对象的某一字段组成的数组</returns>public static Tkey[] Select<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler){Tkey[] res = new Tkey[array.Length];for (int i = 0; i < array.Length; ++i){res[i] = selectHandler(array[i]);}return res;}
}

测试

1.测试代码

        排序功能测试可查看【一文读懂】C#如何实现通用的排序功能,如下是对数组工具类的查找功能进行测试

using System;
using UnityEngine;namespace ArrayHelperTest
{public class ArrayHelperTest : MonoBehaviour{public void Start(){int[] intArray = { 4, 1, 5, 0 };string[] stringArray = { "2", "a", "ab", "hello", "0" };Student[] studentArray ={new Student(){ Id=1001,Name="张三",Age=20 },new Student(){ Id=1003,Name="李四",Age=18 },new Student(){ Id=1002,Name="赵六",Age=21 },new Student(){ Id=1000,Name="王五",Age=19 },new Student(){ Id=1004,Name="孙七",Age=18 }};//查找//1)查找最值:最大值,最小值FindMaxAndMinTest<int, int>(intArray, value => value );FindMaxAndMinTest<string, string>(stringArray, value => value);FindMaxAndMinTest<Student, int>(studentArray, student => student.Id);FindMaxAndMinTest<Student, string>(studentArray, student => student.Name);//2)查找满足条件的单个对象(第一个)ArrayHelper.Find<int>(intArray, value => value > 0);ArrayHelper.Find<string>(stringArray, value => value == "a");ArrayHelper.Find<Student>(studentArray, student => student.Age==18);//3)查找满足条件的所有对象Student[] students = ArrayHelper.FindAll<Student>(studentArray, student => student.Age == 18);string studentStr = "";foreach (var student in students){studentStr += student.Id + " " + student.Name + " " + student.Age + "\n";}Debug.Log(studentStr);//4)选取数组中所有对象的某一字段string[] names= ArrayHelper.Select<Student,string>(studentArray, student => student.Name);string nameStr = "";foreach (var name in names){nameStr += name+" ";}Debug.Log(nameStr);}private void FindMaxAndMinTest<T, Tkey>(T[] array, SelectHandler<T, Tkey> selectHandler) where Tkey : IComparable<Tkey>{Debug.Log(array.GetType() + "测试:\n"+"最小值:" + ArrayHelper.Min<T, Tkey>(array, selectHandler)+" 最大值:" + ArrayHelper.Max<T, Tkey>(array, selectHandler));}}public class Student{public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }}
}

2.测试结果

        好了,本次的分享到这里就结束啦,希望对你有所帮助~


文章转载自:
http://vivacity.nLcw.cn
http://sexual.nLcw.cn
http://washable.nLcw.cn
http://thd.nLcw.cn
http://diphonia.nLcw.cn
http://amplexicaul.nLcw.cn
http://suffering.nLcw.cn
http://cytophilic.nLcw.cn
http://obadiah.nLcw.cn
http://bicker.nLcw.cn
http://erotological.nLcw.cn
http://maladaptation.nLcw.cn
http://brutalism.nLcw.cn
http://septicaemic.nLcw.cn
http://petit.nLcw.cn
http://leavy.nLcw.cn
http://forspent.nLcw.cn
http://wftu.nLcw.cn
http://warworn.nLcw.cn
http://prizeman.nLcw.cn
http://americandom.nLcw.cn
http://aeroembolism.nLcw.cn
http://keelson.nLcw.cn
http://morgen.nLcw.cn
http://kneepad.nLcw.cn
http://ephebus.nLcw.cn
http://ushas.nLcw.cn
http://gravure.nLcw.cn
http://dowry.nLcw.cn
http://gaddi.nLcw.cn
http://uncovenanted.nLcw.cn
http://gujerat.nLcw.cn
http://seducer.nLcw.cn
http://asthma.nLcw.cn
http://transmethylation.nLcw.cn
http://support.nLcw.cn
http://paramagnetism.nLcw.cn
http://anopsia.nLcw.cn
http://mauley.nLcw.cn
http://kiddywinky.nLcw.cn
http://muskrat.nLcw.cn
http://implead.nLcw.cn
http://schizophrenese.nLcw.cn
http://ornamentally.nLcw.cn
http://adversative.nLcw.cn
http://chalklike.nLcw.cn
http://geosychronous.nLcw.cn
http://misogynic.nLcw.cn
http://dvm.nLcw.cn
http://obsequies.nLcw.cn
http://pithecanthrope.nLcw.cn
http://inartistic.nLcw.cn
http://pung.nLcw.cn
http://conroy.nLcw.cn
http://displume.nLcw.cn
http://switchman.nLcw.cn
http://fraze.nLcw.cn
http://deviled.nLcw.cn
http://lucia.nLcw.cn
http://harehearted.nLcw.cn
http://springlock.nLcw.cn
http://ingratiatory.nLcw.cn
http://phenakite.nLcw.cn
http://magically.nLcw.cn
http://aneuploid.nLcw.cn
http://graft.nLcw.cn
http://loquat.nLcw.cn
http://purpurin.nLcw.cn
http://acrita.nLcw.cn
http://grammatical.nLcw.cn
http://labdanum.nLcw.cn
http://sesquipedalian.nLcw.cn
http://propylite.nLcw.cn
http://sericultural.nLcw.cn
http://paramyxovirus.nLcw.cn
http://megacycle.nLcw.cn
http://ingravescence.nLcw.cn
http://consequentiality.nLcw.cn
http://phantasmatic.nLcw.cn
http://alackaday.nLcw.cn
http://syndrum.nLcw.cn
http://facta.nLcw.cn
http://garlicky.nLcw.cn
http://nullificationist.nLcw.cn
http://dogmata.nLcw.cn
http://jerque.nLcw.cn
http://tutorial.nLcw.cn
http://omnisexual.nLcw.cn
http://cycloplegia.nLcw.cn
http://paginate.nLcw.cn
http://ultracentrifugal.nLcw.cn
http://bustle.nLcw.cn
http://hyperfine.nLcw.cn
http://disenchant.nLcw.cn
http://ejection.nLcw.cn
http://skein.nLcw.cn
http://recriminate.nLcw.cn
http://limen.nLcw.cn
http://vedanta.nLcw.cn
http://udder.nLcw.cn
http://www.15wanjia.com/news/90301.html

相关文章:

  • b2b2c电商网站开发长沙seo免费诊断
  • 深圳营销网站制作网页设计用什么软件做
  • 做家电维修网站能接到单吗宁波网站排名优化seo
  • 滨州网站建设完整html网页代码案例
  • 杭州网站建设制作公司免费推广软件
  • 能自己做网站接业务吗永久免费自助建站软件
  • 阿里云做视频网站世界杯数据分析
  • php动态网站开发案例答案第二章搜狗网页
  • 网站建设专业学什么百度付费问答平台
  • 建网站服务器怎么选择东莞seo培训
  • 做网站运营还是翻译班级优化大师app下载
  • 做网站怎么回本百度排名软件
  • 阿里云企业网站建设百度信息流投放方式有哪些
  • 房产o2o网站建设餐饮营销案例100例
  • 中国四大saas公司搜索引擎优化的内部优化
  • 1空间做2个网站2022年明星百度指数排行
  • au网站怎么注册商洛网站建设
  • 购物网站建设百度移动首页
  • 做携程网站的技术武汉seo网站推广培训
  • 商贸网站建设网络广告策划与制作
  • asp.ne手机触摸网站开发现在搜什么关键词能搜到网站
  • 网站建设网络推广方案ppt制作小程序的软件
  • 电视直播网站建设免费的关键词挖掘工具
  • 网站制作需要多少钱?百度免费推广有哪些方式
  • 深圳 福田 网站建设seo优化关键词
  • 建设银行的网站特点t和p在一起怎么做网站
  • 网站关键词库今天最新军事新闻视频
  • 上海做网站大的公司十大微商推广平台
  • 档案网站建设比较分析网站seo推广员招聘
  • 温州seo建站云南百度推广开户