方法一: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);
}
}
你要另外写的话,可以。先连接数据库,创建SqlDataApter对象,把查到的结果集填充到Datatable里显示、然后再逐个获取Datatable单元格的内容。或用SqlDataReader来,它是逐行读取数据的,每读一次就把当前行添加到集合里。
sqlhelper这个类是对数据库 *** 作进行封装而已,方便重复使用。你在vs里,右击你的代码 Sqlhelper---转到定义,仔细看它是怎么通过getDataTable()这个函数
获得数据库数据的。原理都是一样的。
string constr = "data source=.database=Goodsuid=123pwd=123"//连接的数据库的信息
SqlConnection conn = new SqlConnection(constr)//创建连接
conn.Open()//打开连接
string sql = "select *from Course"//要执行的sql语句,你改成你的表名
SqlDataAdapter sda = new SqlDataAdapter(sql,conn)
DataTable dt = new DataTable()
sda.Fill(dt)//填充数据到dt
foreach (DataRow row in dt.Rows)
{
list.Add(row["课程编号"].ToString())
}
方法1:首先把2个list统一成结果的集合类型list/list. 直接用list.removeAll(Collection<?>c)/list.retainAll(Collection<?>c)得到要的结果方法2:遍历2个listview,比较A和B然后存入第3个list欢迎分享,转载请注明来源:内存溢出
评论列表(0条)