一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

對(duì)ArrayList中的自定義類型進(jìn)行搜索

一般情況下我只需要使用ArrayList.Contains()方法就可以判斷某個(gè)元素是否存在,但如果ArrayList中的為自定義的類就需要自己實(shí)現(xiàn),如下面例子:

如我們有一個(gè)類:

public class Employee{     public int EmployeeID     {            get;set;     }     public string EmployeeName     {           get;set;     }     public DateTime BirthDate     {           get; set;     }
}

我們要實(shí)現(xiàn)對(duì)ArrayList中存儲(chǔ)Employee 進(jìn)行查找。先定義兩個(gè)枚舉:

public enum MemType{    IntegerType = 1, StringType = 2, DateTimeType = 3, BooleanType = 4};public enum CmpOperator{    GreaterThan = 1, LessThan = 2, EqualTo = 3}

下面是具體實(shí)現(xiàn):

public static int Search(ArrayList objArr, string valueToSearch, string FieldName, MemType memType, CmpOperator comOp){    if (memType == MemType.StringType || memType == MemType.BooleanType)    {        comOp = CmpOperator.EqualTo;    }    for (int i = 0; i < objArr.Count; i++)    {        Type t = objArr[0].GetType();        System.Reflection.FieldInfo[] arrInner = t.GetFields();        System.Reflection.PropertyInfo PI = t.GetProperty(FieldName);        string str = PI.GetValue(objArr[i], null).ToString();        switch (memType)        {            case MemType.BooleanType:                if (Convert.ToBoolean(str) == Convert.ToBoolean(valueToSearch))                {                    return i;                }                break;            case MemType.DateTimeType:                switch (comOp)                {                    case CmpOperator.EqualTo:                        if (Convert.ToDateTime(str).CompareTo(Convert.ToDateTime(valueToSearch)) == 0)                        {                            return i;                        }                        break;                    case CmpOperator.GreaterThan:                        if (Convert.ToDateTime(str).CompareTo(Convert.ToDateTime(valueToSearch)) > 0)                        {                            return i;                        }                        break;                    case CmpOperator.LessThan:                        if (Convert.ToDateTime(str).CompareTo(Convert.ToDateTime(valueToSearch)) < 0)                        {                            return i;                        }                        break;                }                break;            case MemType.IntegerType:                switch (comOp)                {                    case CmpOperator.EqualTo:                        if (Convert.ToInt32(str) == Convert.ToInt32(valueToSearch))                        {                            return i;                        }                        break;                    case CmpOperator.GreaterThan:                        if (Convert.ToInt32(str) > Convert.ToInt32(valueToSearch))                        {                            return i;                        }                        break;                    case CmpOperator.LessThan:                        if (Convert.ToInt32(str) < Convert.ToInt32(valueToSearch))                        {                            return i;                        }                        break;                }                break;            case MemType.StringType:                if (str.Contains(valueToSearch))                {                    return i;                }                break;        }    }    return -1;}

測(cè)試代碼如下:

static void Main(string[] args) {     ArrayList al = new ArrayList();     Employee emp1 = new Employee();     emp1.EmployeeID = 2;     emp1.EmployeeName = "cary";                emp1.BirthDate = new DateTime(1982, 4, 1);     Employee emp2 = new Employee();     emp2.EmployeeID = 3;     emp2.EmployeeName = "james";                emp2.BirthDate = new DateTime(1983, 4, 1);     al.Add(emp1);     al.Add(emp2);     int searIndex = Search(al, "3", "EmployeeID", MemType.IntegerType, CmpOperator.EqualTo);     Console.WriteLine(searIndex);     Console.ReadLine();         }

NET技術(shù)對(duì)ArrayList中的自定義類型進(jìn)行搜索,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 2020国产成人精品视频人 | 亚洲国产精品免费视频 | 国产欧美性综合视频性刺激 | 亚洲福利三区 | 久久久久这里只有精品 | 真人午夜a一级毛片 | 在线看色 | 四虎免费网址 | 四虎影视免费永久在线观看黄 | 国产综合成人久久大片91 | 午夜精品久视频在线观看 | 欧美色综合图区 | 手机在线你懂得 | 精品三区| 2020国产精品视频免费 | 午夜国产大片免费观看 | 国产成人久久精品 | 99久久精品费精品国产 | 欧美一级特黄aaa大片 | 亚洲操综合 | 亚洲四区 | 久久久久久久免费 | 国产极品白嫩美女在线观看看 | 综合 欧美 国产 视频二区 | 在线视频观看一区 | 狠狠干2021| 五月激情综合丁香色婷婷 | 色婷婷综合缴情综六月 | 日本aⅴ永久免费网站www | 91视频最新 | 中文字幕在线亚洲 | 欧美另类杂交a | 日韩美一区二区三区 | 自拍毛片 | 中国一级特黄真人毛片免费看 | 色呦呦在线免费观看 | 欧美 亚洲 丝袜 清纯 中文 | 99pao在线视频精品免费 | 免费人成网站尤物在线观看 | 好吊日免费视频 | 美国美女一级毛片免费全 |