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 的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 改变文件大小 函数_手写
- 下一篇: 转dem_约会大作战:真那离开DEM社,