網路上有許多篇相關的資料 但美中不足的都是 C#的文章
今天剛好遇到新的課題,發現用List.Find 剛好符合,可以來試試
在Framwork 下 泛型是一個相當好用方式,今天就來結合 泛型 與 List.Find 的結合
首先 讓我們創建 要做泛型的結構
Structure OriginInfo
public Name as string
public Org as pointf
End Structure
Dim OrgList as new List<of Origininfo>
Dim a1 as Origininfo
Dim a2 as Origininfo
Dim a3 as Origininfo
a1.Name = "AAA"
a1.Org = new PointF(100,100)
a2.Name = "BBB"
a2.Org = new PointF(100,100)
a3.Name = "CCC"
a3.Org = new PointF(100,100)
OrgList.ADD(a1)
OrgList.ADD(a2)
OrgList.ADD(a3)
資料建好後 再來就可以開始做搜尋的動做
(ps 在網路上有看到建議可以用Linq 的方式做查詢,其實也不是不行,但在使用上比較不方便,等會就可以看到,我們需要的是其中的特定資料
Linq 查詢出來的是一組資料,而且無法一開始就指定資料型態
特別需要注意,List.Find 是找出資料中符合的第一筆資料,如果裡面有2個以上資料相符, 而且都需要 ,就不適合用 Find 方法
或許是我這邊學的不好,有好的做法請多多提供)
Dim query as string = "BBB"
Dim result as Origininfo = OrgList.Find( Function( o as Origininfo) o.Name = query)
ok 就如此簡單,就能在 List 結構 找出所需要的資料
- 5月 25 週三 201123:33
List 資料的查詢 用 Find 方法
文章標籤
全站熱搜

感謝作者寫的淺顯易懂。但是這一段看不懂,如果作者有空,煩請稍加解釋一番 Function( o as Origininfo) o.Name = query ,看不懂的地方是1:Function(傳入參數),為何填入Byval ,編譯器會自動消除Byval? (使用VB2008Express) 2:如何改寫成傳統的Function...End Function ?
比較抱歉,這一陣子剛好換筆電,時間比較少用在這邊 恩 這塊是 lumbda 運算,這樣的寫法是大大的縮短List中資料尋找,當然 如果不習慣 就需要使用 Address of ,不過這塊我很少這樣寫,改天有機會試試 有關 Lumbda 的說明,可以看一下微軟的介紹 http://msdn.microsoft.com/zh-tw/magazine/cc163362.aspx