對於用list這種泛型容器使用find方法中需要傳遞乙個引數是這樣形式的predicate,t就是list儲存的型別,而這裡predicate是乙個委託,構造是這樣的public delegate bool prdicate(t obj)。
因此使用的時候有兩種方法,一種是在外面實現這個委託相應的函式,微軟的官方例子
using system;
using system.collections.generic;
public
class example
console.writeline("\ntrueforall(endswithsaurus): ",
dinosaurs.trueforall(endswithsaurus));
console.writeline("\nfind(endswithsaurus): ",
dinosaurs.find(endswithsaurus));
console.writeline("\nfindlast(endswithsaurus): ",
dinosaurs.findlast(endswithsaurus));
console.writeline("\nfindall(endswithsaurus):");
list sublist = dinosaurs.findall(endswithsaurus);
foreach(string dinosaur in sublist)
console.writeline(
"\n elements removed by removeall(endswithsaurus).",
dinosaurs.removeall(endswithsaurus));
console.writeline("\nlist now contains:");
foreach(string dinosaur in dinosaurs)
console.writeline("\nexists(endswithsaurus): ",
dinosaurs.exists(endswithsaurus));
}// search predicate returns true if a string ends in "saurus".
private
static
bool endswithsaurus(string s)
else}}
/* this code example produces the following output:
compsognathus
amargasaurus
oviraptor
velociraptor
deinonychus
dilophosaurus
gallimimus
triceratops
trueforall(endswithsaurus): false
find(endswithsaurus): amargasaurus
findlast(endswithsaurus): dilophosaurus
findall(endswithsaurus):
amargasaurus
dilophosaurus
2 elements removed by removeall(endswithsaurus).
list now contains:
compsognathus
oviraptor
velociraptor
deinonychus
gallimimus
triceratops
exists(endswithsaurus): false
*/
list 中find的使用
昨天要在 std list中判斷是否存在某一字串 std string 我首先想到的是 list迭代 std string過載的 判斷,也就是 listliststr string s1 for vector iterator itr liststr.begin itr liststr.end it...
C 中List的Find方法的使用
查詢list中的某個值,可以使用迴圈遍歷對比,查詢出結果。c 中提供了find方法,可以直接使用,只要查詢條件傳入就可。如下 class program console.writeline resultuser null resultuser.userid system.environment.ne...
C 中List的Find方法的使用
查詢list中的某個值,可以使用迴圈遍歷對比,查詢出結果。c 中提供了find方法,可以直接使用,只要查詢條件傳入就可。如下 class program console.writeline resultuser null resultuser.userid system.environment.ne...