python list 查找find_List 泛型 集合中 Find 的用法
以前在开发中为了对List,String[].Array进行元素的查找一般都是这样做:
List lists = new List();
list.add("111");
.....
for(int i=0;i
{
if(list[i].equals("要查找的元素"))
{....}
}
其实在C# 2.0对List,Array元素的查找,MS已经提供了一些泛型方法,让Coding人员更好的查找,遍历,等等...
以下是我简单对List的一些操作所写的Demo.供大家参考,以及和大家进行交流。
static void Main(string[] args)
{
//Prdicate用法
//第一种用法:[不创建显式的委托,也不创建指定泛型方法的类型参数]
ListOneMethod();
//Prdicate用法
//第二种用法:[创建显式的委托,也创建指定泛型方法的类型参数]
ListTwoMethod();
//第三种用法:[同于第二种方法,但用了两个类进行区分]
ListThreeMethod();
}
#region 第一种用法
private static void ListOneMethod()
{
String[] strs = { "WPF", "WCF", "WF", "Author", "WinFx", "Linq" };
String Name = Array.Find(strs, FindWhere);
Console.WriteLine("Result: ---------- " + Name + " ----------");
}
public static Boolean FindWhere(String str)
{
return str.Equals("Author") ? true : false;
}
#endregion
#region 第二种用法
private static void ListTwoMethod()
{
List strlist = new List();
strlist.Add("WPF");
strlist.Add("WCF");
strlist.Add("WF");
strlist.Add("Author");
strlist.Add("WinFx");
strlist.Add("Linq");
Predicate FindValues = delegate(String list)
{
return list.Equals("WinFx") ? true : false;
};
Console.WriteLine("Result: ---FindIndex--- " + strlist.FindIndex(FindValues) + " ----------");
Console.WriteLine("Result: ---Exists---- " + strlist.Exists(FindValues) + " ----------");
List lists = strlist.FindAll(FindValues);
foreach (string str in lists)
{
Console.WriteLine("Result: ---FindAll----- " + str + " ----------");
}
Console.WriteLine("Result: ---FindLast---- " + strlist.FindLast(FindValues) + " ----------");
Console.WriteLine("Result: ---FindLastIndex-- " + strlist.FindLastIndex(FindValues) + " ----------");
Console.WriteLine("Result: ---RemoveAll-- " + strlist.RemoveAll(FindValues) + " ----------");
Console.WriteLine("Result: ---TrueForAll- " + strlist.TrueForAll(FindValues) + " ----------");
}
#endregion
#region 第三种用法
private static void ListThreeMethod()
{
ListClass lists = new ListClass();
// 使用List.Add()方法來新增集合內容
lists.Values.Add(new ValueClass("WPF"));
lists.Values.Add(new ValueClass("WCF"));
lists.Values.Add(new ValueClass("WF"));
lists.Values.Add(new ValueClass("Author"));
lists.Values.Add(new ValueClass("WinFx"));
lists.Values.Add(new ValueClass("Linq"));
Predicate FindValue = delegate(ValueClass obj) { return obj.Value == "Author"; };
Console.WriteLine("Result: ---------- " + lists.Values.FindIndex(FindValue) + " ----------");
Console.WriteLine("將所有資料列出");
int idx = 0;
Action ListAll = delegate(ValueClass obj)
{
Console.WriteLine(string.Format("第 {0} 個的Value值為 {1}", idx, obj.Value));
idx++;
};
lists.Values.ForEach(ListAll);
}
public class ValueClass
{
private string _value = string.Empty;
public string Value
{
get { return _value; }
}
public ValueClass(string value)
{
_value = value;
}
}
public class ListClass
{
private List _values = new List();
public List Values
{
get { return _values; }
}
public ListClass() { }
}
#endregion
*Predicate 是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 true。当前 List 的元素被逐个传递给 Predicate 委托,在找到匹配项时停止处理。此方法执行线性搜索;
还有就是有关于List其他的一些查找方法:
1.当需要依条件来寻找集合内的某个类别时, 可用ListFind(), ListFindLast()来搜寻, 回传搜寻到的类别
2.当需要依条件来寻找集合内的某些类别时, 可用ListFindAll()来搜寻, 将回传一个新的List对象集合
3.当需要依条件来寻找集合内的某个类别的索引值时, 可用ListFindIndex(), ListFindLastIndex()
4.ListFind(), ListFindLast()的不同是, ListFind()由Index=0开始寻找, 而ListFindLast()由Index = List.Count - 1开始寻找
同理, ListFindIndex(), ListFindLastIndex()也是一样, 不同的是, 这两个回传的是索引值
5.当使用ListFind()相关函示时, 必须delegate.这个Predicate
其内容就是搜寻的判断式, 如:
Predicate FindJaofeng = delegate(class1 obj) {
return obj.Value == "Jaofeng";
};
return type为boolean值
而上面也有介绍一个List.ForEach(), 这个Method只是将原本我们用foreach()的方式, 简化而已
譬如原本的习惯写法:
foreach (class1 cls in myText.Values) {
//
Do something
}
// 现在变成
Action ActionName = delegate(class1 obj) {
//
Do something
};
myText.Values.ForEach(ActionName);
查找DropDownList中的Item的
ListItemCollection items = DisplayModeDropdown.Items;
查找 Index:
int selectedIndex = items.IndexOf(items.FindByText("需要查找匹配的item"));
查找 Value:
string selectedValue = items.FindByText("需要查找匹配的item");
python list 查找find_List 泛型 集合中 Find 的用法相关推荐
- C# List泛型集合中的GroupBy用法
[csharp] view plaincopy print? //根据子项目id得到flowjump实体类 flowJumps = this.FlowJumps; //按工序groupby flowj ...
- python每个数都可由集合中的某两个数相加而得
python每个数都可由集合中的某两个数相加而得(这两个数可以相同) 问题表述 思路 代码 运行结果 问题表述 有一个自然数集合,其中最小的数是1,最大的数是100.这个集合中的数除了1之外,每个数都 ...
- C# 找出泛型集合中的满足一定条件的元素 List.Wher()
在学习的过程中,发现泛型集合List<T>有一个Where函数可以筛选出满足一定条件的元素,结合Lambda表达式使用特别方便,写出来与大家分享. 1.关于Func<> Fun ...
- python编程字典100例_python中字典(Dictionary)用法实例详解
本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...
- python argparse模块详解_python中argparse模块用法实例详解
本文实例讲述了python中argparse模块用法.分享给大家供大家参考.具体分析如下: 平常在写命令行工具的时候,经常会带参数,所以用python中的argparse来实现. # -*- codi ...
- python类初始化导入库_Python中optparser库用法实例详解
本文研究的主要是Python中optparser库的相关内容,具体如下. 一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库.当然了,不敢说理解的很到位,但是足以应付正常 ...
- python元类的使用_python中元类用法实例
本文实例讲述了python中元类用法,分享给大家供大家参考.具体方法分析如下: 1.元类(metaclass)是用来创建类的类 2.type(object):返回一个对象的类型,与object.__c ...
- 【Python】查找目标值在列表中的索引序号
class Solution:def search(self, nums: List[int], target: int) -> int:return nums.index(target) if ...
- 泛型集合中对继承类的转换
如果您出现以下错误,本文可能对你有帮助: Error 1:System.InvalidCastException: Unable to cast object of type 'System.Coll ...
最新文章
- 一档博士40万年薪+70万房补!引进224人!​这所大学2021年公开招聘专任教师公告...
- 再加力度!浙江抢人!博士补120万,硕士补70万,本科补20万
- 请关注你的网站跳出率
- C#Dictionary源码
- nginx配置静态文件过期时间
- 【Microstation】不能从对话框中装载/创建类型为 ‘HTML‘,id =41510001 的对话框条目,该对话框为: “文本编辑器 - 字处理器“,GCSDIALOG 已装载。
- Redis哈希数详解
- 第三季-第24课-TCP通讯程序设计
- 【雷达测角】基于matlab和差波束加权【含Matlab源码 1674期】
- excel wind插件使用_这些超实用的Excel插件,你要是都知道,确定老司机无疑了
- VS2010使用教程(使用VS2010编写C语言程序)
- 英文版 office 中的中文字体
- BUUCTF Misc 弱口令 [RoarCTF2019]黄金6年 小易的U盘 [WUSTCTF2020]alison_likes
- 【金融财经】金融市场一周简报(2017-09-15)
- 百度网盘linux版本怎么安装
- 360路由器的虚拟服务器设置,360路由器无线万能中继设置教程图解
- 计算机卡死快捷键,必看!电脑运行卡或软件卡死无响应,怎么办?
- 积分运营体系四——积分激励体系从策略到产品落地的全过程
- React 待办事项列表案例
- Swift初步探究-正确导入第三方库
热门文章
- 安装Google Object Detection API
- 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)
- Pandas高级教程之:处理缺失数据
- zookeeper简介以及C客户端用法
- InvocationHandler的invoke方法如何被调用?
- Java学习笔记一和前言
- b g opencv读入的图片 r_OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- hadoop元数据合并过程_Hadoop元数据合并异常及解决方法
- hi3516配置wifi_HISI 3516A移植mt7601u的wifi驱动
- switch语句嵌套if_C++核心准则ES.70:进行选择时,switch语句比if语句好