當前位置:編程學習大全網 - 源碼下載 - C#的問題,怎麽在List集合中篩選數據?

C#的問題,怎麽在List集合中篩選數據?

方法壹:Linq

ChannelList就是壹個List類型的數據,IsOpen是其元素的屬性

channelCount=(fromchannelinDevicesManager.Instance.CurrentDevice.ChannelList

wherechannel.IsOpen

groupchannelbychannel.ChannelID).Count();

方法二:泛型委托Predicate<T>

publicdelegateboolPredicate<inT>(

Tobj

方法三、

///<summary>

///篩選運送方式

///</summary>

///<paramname="list">運送方式集合</param>

///<paramname="strType">運送方式</param>

///<returns></returns>

privateList<FeeRuleDto>selectList(List<FeeRuleDto>list,stringstrType)

returnlist.FindAll(delegate(FeeRuleDtoinfo){

if(info.DeliveryType.ToString()==strType)

returntrue;

else{

returnfalse;

});

方法四、

使用List<T>獲取數據庫表的時候,每次用戶操作都重新訪問數據庫,然後返回List<T>,會嚴重影響程序運行效率的方式,其實List<T>自帶有篩選的方法,把想要的數據篩選到另壹個List<T>中,不用重新訪問數據庫,直接篩選後綁定控件顯示即可。

示例如下:

publicNumberModelcurrentmark;

publicMainFrmmainFrm;

privateList<GoodsModel>goodslist;

privateList<GoodsKindModel>goodskindlist;

privatevoidlstgoodkind_SelectedIndexChanged(objectsender,EventArgse)

try

if(lstgoodkind.SelectedValue.ToString()!="XY.Model.GoodsKindModel")

stringid=lstgoodkind.SelectedValue.ToString();

stringkname=lstgoodkind.Text;

if(kname!="全部")

List<GoodsModel>glist=goodslist.FindAll(delegate(GoodsModelp){returnp.GoodsKind==kname;});

bindgoods(dgvgoods,glist);

else

bindgoods(dgvgoods,goodslist);

catch(Exceptionex)

MessageBox.Show(ex.Message);

privatevoidbtnAdd_Click(objectsender,EventArgse)

try

stringgid=dgvgoods.Rows[dgvgoo

例如:跳過List前50條,然後取100條,可寫為:

iclist_temp、iclist都為List類型

iclist_temp = iclist.Skip(50).Take(100).ToList();

取前100條,可以寫為:

iclist_temp = iclist.Take(100).ToList();

ds.SelectedRows[0].Index].Cells["goodsid"].Value.ToString();

GoodsModelgoods=goodslist.Find(delegate(GoodsModelp){returnp.ID==gid;});

XY.BLL.ConsumeBll.Add(goods,currentmark,mainFrm.user);

catch(Exceptionex)

MessageBox.Show(ex.Message);

  • 上一篇:安卓rmvb播放器安卓rmvb播放器
  • 下一篇:做網站要錢嗎,壹個人夠嗎,需要那些技能,需要會編程嗎?
  • copyright 2024編程學習大全網