c#如何将查询后的结果放入list中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何将查询后的结果放入list中相关的知识,希望对你有一定的参考价值。
如果是用ADO读取的查询后的数据,建议使用DataReader,而不要把Dataset转换为List,List最好用强类型封装。使用DataReader只需要遍历一次就可以了,Dataset转换LIst要至少两次。代码大概如下:
while(DataReader.read())List<类型>.Add(实体) 参考技术A 如果是listbox,你要用中间ListItem 暂存,然后再转到listbox中 参考技术B 加单个元素 List.Add(单个)
加多个元素 List.AddRange(数组)
数组变list Array.ToList();追问
能给个具体点的程序例子吗??不太会用啊
追答List myList= new List();//目标List
string a="1";//加单个
myList.Add(a);
string [] b="1","2";//加多个(数组)
myList.AddRange(b);
string [] c="1","2","3";//数组变list
List myList = c.ToList();
C#的问题,怎么在List集合中筛选数据?
有一个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);
}
}
参考技术ALINQ
比如说
List<String> list = new List<String>();var q = from String s in list
where s[0] = "A" && s.Length = 4 //字符串是以A开头,并且长度为4位的
select s;
q在就是你要的结果
本回答被提问者和网友采纳 参考技术BLINQ搞起
List.Where(info=>info.Sex=="男").Where(info=>info.Age>20)多条件就对个Where
参考技术C首先new一个新的List集合,然后用for循环,逐条读取现有的List集合中的数据,筛选出符合条件数据添加到新建的List集合中即可。
如:
List<object> newlist = new List<object>;for(i=0;i<oldList.Length;i++)
if(oldList[i]符合条件)
newlist.add(oldList[i]);
参考技术D 通过linq:
List<String> list = new List<String>();
var q = from String s in list
where s[0] = "A" && s.Length = 4 //字符串是以A开头,并且长度为4位的
select s;
以上是关于c#如何将查询后的结果放入list中的主要内容,如果未能解决你的问题,请参考以下文章
C#中combobox如何实现模糊查询,并能自动显示下拉列表
如何使用 RestTemplate 在 List 中获取结果并将响应放入 List?