C 在列表中按特性查詢

2021-06-18 01:42:04 字數 1551 閱讀 9524

宣告:閱讀本文需要 c# 泛型和委託的基本知識。

列表在程式設計過程中應用極為廣泛,而按照索引來查詢顯然不能滿足所有需求, c#.net 提供了很好的內建方法來方便程式設計師編寫按照特性來搜尋列表中的成員的**。

下面我將介紹該方法。

在 list 類中,有幾個方 :findindex 、 findall、find、findindexlast、findlast 。

findindex 方法的引數是乙個委託,該委託是  predicate型別的,接受乙個 t 型別的引數,返回乙個布林值。其他方法的引數也是如此。

predicate的定義如下:

public delegate bool predicate(t object)
方法簽名如下:

public int findindex(predicatefunc)
這幾個方法會將列表中的每一項作為引數,傳遞給該委託。 findindex 會返回第乙個在委託中返回布林值的物件的索引,並停止查詢;findall 則會一直查詢到結束為止,並返回乙個 t 型別的列表;find 則會返回第乙個符合條件的t 型別的物件,並結束查詢;findindexlast 和 findlast 是從後向前查詢,功能分別和 findindex 及 find 對應。

下面用乙個示例來說明(由於這幾個函式用法都一樣,只是返回型別不同,就只拿 findindex 和 findall 來說明):

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace findfeature

public int winnercount

public int level

//3個引數的建構函式

public footballteam(string name, int winnercount, int level)

//1個引數的建構函式

public footballteam(string name)

//按照球隊名查詢

public bool findname(footballteam footballteam)

else

}//按照奪冠次數查詢

public static bool findwinnercount(footballteam footballteam)

else}}

class program

winner counts:",r.name,r.winnercount));

console.readkey();}}

}

執行結果如下:

謝謝閱讀!

rember !you make luck !

python中的列表,列表的特性

列表中可以存放任意型別的資料 li 1,2,3,5,6,8 li 1,2,3,1,2,3,4 5,7 eg 將0 9這10個數字隨機列表 注 shuffle 方法將序列的所有元素隨機排序。print service 1 列表的反轉 print service 1 除了第乙個之外的其他元素 print...

sql中按日期查詢

查詢當天 1 select from shoporder where datediff day,ordtime,getdate 1 0 查詢當天 2 select from info where datediff dd,datetime,getdate 0 前30天 select from a wh...

實現CRL中吊銷列表按日期排序

專案原來設計只要求讀取crl中吊銷列表的序列號和吊銷日期,所以並未考慮排序的問題,但是後來又要求按照吊銷日期進行排序。下面是原來的程式,顯示出來的吊銷列表順序是亂的,和證書上的順序不一致。certificatefactory cf certificatefactory.getinstance x.5...