C#使用-Find方法(续)

来源:互联网 发布:now直播软件下载 编辑:程序博客网 时间:2024/05/22 17:23

这几天出现了CSDN账号密码被泄露事件,于是我也上来看看,结果果然密码被修改了。。。

好久没上来发现有些人给我留言,很抱歉没有及时的给你们回复。在Find方法那篇博客中有人问到Find方法如果是使用的对象怎么进行Find,在此把代码贴出来

using System;using System.Collections.Generic;namespace FindSample{    class Program    {        static void Main(string[] args)        {            List<Task> tasks = InitializeTasks();            TaskFindHelper taskFindHelper = new TaskFindHelper();            // Set the finding conditions            taskFindHelper.ID = "Task1";            taskFindHelper.Size = 100;            taskFindHelper.Status = 1;            Task result1 = taskFindHelper.FindTask(tasks, TaskFindingType.ID);            Task result2 = taskFindHelper.FindTask(tasks, TaskFindingType.Size);            Task result3 = taskFindHelper.FindTask(tasks, TaskFindingType.Status);            if (result1 != null)            {                Console.WriteLine("Finding the ID == Task1 task, the result is:");                Console.WriteLine(result1.ToString());            }            if (result2 != null)            {                Console.WriteLine("Finding the size == 100 task, the result is:");                Console.WriteLine(result2.ToString());            }            if (result3 != null)            {                Console.WriteLine("Finding the Status == 1 task, the result is:");                Console.WriteLine(result3.ToString());            }            Console.WriteLine();            List<Task> result4 = taskFindHelper.FindAllTask(tasks, TaskFindingType.ID);            List<Task> result5 = taskFindHelper.FindAllTask(tasks, TaskFindingType.Size);            List<Task> result6 = taskFindHelper.FindAllTask(tasks, TaskFindingType.Status);            if (result4 != null)            {                Console.WriteLine("Finding the ID == Task1 task, the result is:");                foreach (Task task in result4)                    Console.WriteLine(task.ToString());            }            if (result5 != null)            {                Console.WriteLine("Finding the size == 100 task, the result is:");                foreach (Task task in result5)                    Console.WriteLine(task.ToString());            }            if (result6 != null)            {                Console.WriteLine("Finding the Status == 1 task, the result is:");                foreach (Task task in result6)                    Console.WriteLine(task.ToString());            }        }        private static List<Task> InitializeTasks()        {            Task t1 = new Task();            t1.ID = "Task1";            t1.Size = 100;            t1.Status = 0;            Task t2 = new Task();            t2.ID = "Task2";            t2.Size = 100;            t2.Status = 1;            Task t3 = new Task();            t3.ID = "Task3";            t3.Size = 150;            t3.Status = 1;            List<Task> taskList = new List<Task>();            taskList.Add(t1);            taskList.Add(t2);            taskList.Add(t3);            return taskList;        }    }    public class TaskFindHelper    {        public Task FindTask(List<Task> tasks, TaskFindingType t)        {            Task result = null;            switch (t)            {                case TaskFindingType.ID:                    result = tasks.Find(FindByTaskID);                    break;                case TaskFindingType.Size:                    result = tasks.Find(FindByTaskSize);                    break;                case TaskFindingType.Status:                    result = tasks.Find(FindByTaskStatus);                    break;                default:                    break;            }            return result;        }        public List<Task> FindAllTask(List<Task> tasks, TaskFindingType t)        {            List<Task> result = null;            switch (t)            {                case TaskFindingType.ID:                    result = tasks.FindAll(FindByTaskID);                    break;                case TaskFindingType.Size:                    result = tasks.FindAll(FindByTaskSize);                    break;                case TaskFindingType.Status:                    result = tasks.FindAll(FindByTaskStatus);                    break;                default:                    break;            }            return result;        }        private bool FindByTaskID(Task task)        {             return (task.ID == this.ID);        }        public String ID { get; set; }        private bool FindByTaskSize(Task task)        {            return (task.Size == this.Size);        }        public int Size { get; set; }        private bool FindByTaskStatus(Task task)        {            return (task.Status == this.Status);        }        public int Status { get; set; }    }    public enum TaskFindingType    {        ID,        Size,        Status    }    public class Task    {        public String ID { get; set; }        public int Size { get; set; }        public int Status { get; set; }        public override string ToString()        {            return String.Format("ID is {0}, size is {1}, status is {2}", ID, Size, Status);        }    }}

运行结果为


原创粉丝点击