在List范型集合中實現自定義條件複雜查詢

2021-06-05 05:39:27 字數 3292 閱讀 3385

說明:在list范型集合中提供了一類委託,以確定要尋找集合中的哪些符合條件的單個元素或者集合

msdn裡描述如下:predicate 委託,用於定義要搜尋的元素應滿足的條件。

這一點msdn幫助裡面說得很簡單,只以list范型集合為例說了一些簡單應用,這些完全不能滿足

一些複雜的應用,比如查詢集合中符合某些特性的單個元素或者元素集合,因為predicate 委託只能使用

乙個引數,寫本文的目的就是說明如何滿足複雜的要求在范型集合中查詢元素

using

system;

using

system.collections.generic;

using

system.text;

namespace

listdemo

set}

public

intcatalogid

set}

public

cataloginfo(

intcatalogid, 

string

catalogname)}}

using

system;

using

system.collections.generic;

using

system.text;

namespace

listdemo

set}

public

catalogfinder()

public

catalogfinder(

intcatalogid)

//////

符合predicate>t

///

///

///

public

bool

findbycatalogid(cataloginfo info)}}

using

system;

using

system.collections.generic;

using

system.text;

namespace

listdemo

set}

public

string

boardname

set}

public

intboardid

set}

public

boardinfo(

intboardid, 

string

boardname, 

intcatalogid)}}

上面分別是兩個范型集合中用到的實體,以及將來要用於查詢這些實體的輔助類,下面距離說明用法:

using

system;

using

system.collections.generic;

using

system.drawing.imaging;

using

listdemo;

//////

說明:在list

范型集合中提供了一類委託,以確定要尋找集合中的哪些符合條件的單個元素或者集合

///msdn裡描述如下:predicate 委託,用於定義要搜尋的元素應滿足的條件。

///這一點msdn幫助裡面說得很簡單,只以list

范型集合為例說了一些簡單應用,這些完全不能滿足

///一些複雜的應用,比如查詢集合中符合某些特性的單個元素或者元素集合,因為predicate 委託只能使用

///乙個引數,寫本文的目的就是說明如何滿足複雜的要求在范型集合中查詢元素

//////

日期:2007-12-28

//////

public

class

example

//初始化小類別集合,隨機指定它們的大類別編號

list

<

boardinfo

>

boardlist 

=new

list

<

boardinfo

>(50

);random random

=new

random(

100);

for(

inti =0

; i 

<

100; i++)

console.writeline(

"*****==在大類別中查詢*****===");

catalogfinder catalogfinder 

=new

catalogfinder(5);

cataloginfo cataloginfo 

=cataloglist.find(catalogfinder.findbycatalogid);

console.writeline(

"該大類別的名稱:"+

cataloginfo.catalogname);

console.writeline(

"*****==在小類別中查詢*****===");

boardfinder boardfinder 

=new

boardfinder();

boardfinder.boardid =25

;boardinfo boardinfo 

=boardlist.find(boardfinder.findbyboardid);

console.writeline(

"該小類別資訊:小類別名稱,所屬大類別編號

", boardinfo.boardname, boardinfo.catalogid);

console.writeline(

"*****==在小類別中按大類別編號查詢*****===");

boardfinder.catalogid =9

;list

<

boardinfo

>

boardinfolist 

=boardlist.findall(boardfinder.findbycatalogid);

foreach

(boardinfo info 

inboardinfolist)

,所屬大類別編號

", info.boardname, info.catalogid);

}console.readline();}}

以下是輸出結果:

在List范型集合中實現自定義條件複雜查詢

說明 在list范型集合中提供了一類委託,以確定要尋找集合中的哪些符合條件的單個元素或者集合 msdn裡描述如下 predicate 委託,用於定義要搜尋的元素應滿足的條件。這一點msdn幫助裡面說得很簡單,只以list范型集合為例說了一些簡單應用,這些完全不能滿足 一些複雜的應用,比如查詢集合中符...

自定義List物件集合排序

1.定義實體類 public class commodity public commodity string type,string name,double price,string shopname,int sales 此處省略類屬性的get set方法 public string tostrin...

Java集合整理 自定義泛型

泛型是jdk1.5,新新增的特性,其作用是對集合進行 引數化型別 在jdk1.5之前,還沒有泛型這一概念,集合中的元素是object型別,所以,每次使用集合中的元素時,需要將元素向下造型成對應型別才能使用,錯誤的可能性很大,非常的不方便。為了簡化操作,提高效率,便有了泛型這一新特性,有了泛型,集合就...