list过滤c
❶ 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);
}
}
❷ java中得到一个list,但只要取list的前3行数据,该怎么写啊
很简单,只需要调用List的get(intindex) 方法就行,参数index就是索引,如果是前三行,对应的索引就是0、1、2。
方法有如下有两种:
一、先说一个最笨的方法。挨个把元素取出来,然后再挨个放到新的数组里面,代码如下:
Content a= list.get(0);//获取第一行数据
Content b= list.get(1);//获取第二行数据
Content c= list.get(2);//获取第三行数据
List<Content>list=newArrayList<Content>();
list.add("a");//添加第一行数据
list.add("b");//添加第二行数据
list.add("c");//添加第三行数据
二、通过for循环,取一个元素就放一个元素。代码如下
List<Content> list1 = new ArrayList();
for{int i = 0; i < 3; i++}{
list1.add(list.get(i));
}
(2)list过滤c扩展阅读:
List的一般用法
(1)声明 List<T> mlist = new List<T>();
eg: string[] Arr = {"a","b","c"};
List<string> mlist = new List<string>(Arr);
(2)添加一个元素 List.Add(T item)
eg: mlist.Add("d");
(3)添加集合元素
eg: string[] Arr2 ={"f","g"."h"};
mlist.AddRange(Arr2);
(4)在index位置添加一个元素 Insert(int index,T item)
eg: mlist.Insert(1,"p");
(5)删除元素
List.Remove(T item) 删除一个值
eg: mlist.Remove("a");
List.RemoveAt(int index);删除下标为index的元素
eg: mlist.RemoveAt(0);
List.RemoveRange(int index,int count);下标index开始,删除count个元素
eg:mlist.RemoveRange(3,2);
Orcle官方API接口-Java Platform SE 7-List
网络-list(计算机专业术语)
W3cSchool-Java数组
❸ Java两个List的过滤问题
packagetest;
importjava.util.ArrayList;
importjava.util.List;
publicclassA1
{
publicstaticvoidmain(String[]args)
{
List<String>list1=newArrayList<String>();
list1.add("JSON--B--TEST");
list1.add("JSON--A--TEST");//deletethisitem
list1.add("JSON--C--TEST");
List<String>list2=newArrayList<String>();
list2.add("B");
list2.add("C");
Stringtemp=list2.toString().replaceAll("[\[\]\s]","").replaceAll("\,","|");
System.out.println(temp);
Stringreg="^.*("+temp+").*$";
for(inti=0;i<list1.size();i++)
{
if(!list1.get(i).matches(reg))
{
list1.remove(i);
}
}
System.out.println(list1.toString());
}
}
❹ java list每一条里remove去除某一字段
正确的做法是
for(int i =al.size();i>0;i--){
String value=al.get(i);
if("B".equals(value){
al.remove(value);
}
}
另外建议不要在循环中这样做,在多线程环境下很容易引起 concurrencyModifiedException
❺ 如何将两个List进行比较过滤出所要的数据
方法1:首先把2个list统一成结果的集合类型list/list. 直接用list.removeAll(Collection<?> c)/list.retainAll(Collection<?> c)得到要的结果方法2:遍历2个listview,比较A和B然后存入第3个list
❻ C # 里的List筛选怎么写
list_all.FindAll(c=>c.ID==10)
❼ 如何判断List<String>list中是否包含某个字符串
直接使用 java.util.List.contains(Object) 方法。
testlist.add(1);
testlist.add(2);
testlist.add(3);
boolean result = testlist.contains(1);//结果为true}。
可以用for循环,进行循环遍历进行比对,看看是否包含某个字符串。
举个例子:String s = "xxx";List<String>list= new ArrayList();list.add("xx");list.add("xxx");
for(String s1 :list){if(s1.equals(s)){System.out.println("配对成功");}}用contains(Object o)也可以。
拓展资料:
for(temp:list), {if(list.equals(xxStr)), {returntrue,returnfalse;
❽ java 怎么删除List中的指定元素
主要有三种方法:
用一个List 记录要删除的数据,最后removeAll(List);
❾ 如何去除List集合中重复的元素
1、通过循环进行删除
public static void removeDuplicate(List list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);}}}
System.out.println(list);}
2、通过HashSet删除
public static void removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);}
(9)list过滤c扩展阅读:
List集合代表一个元素有序,可重复的集合,集合中每个元素都有对应的顺序索引。List接口中增加了一些根据索引操作元素的方法:
void add(int index,E element ) 在列表的指定位置插入该元素。
boolean addAll(int index,Collection c) 将集合c包含的所有元素都插入到List集合的index处。
Object get(int index) 返回集合index索引出的元素。
List额外提供的一个listIterator()方法,提供了专门操作List的方法。
ListIterator接口在Iterator的基础上增加了如下方法:
boolean hasPrevious(): 返回该迭代器关联的集合是否还有上一个元素。
Object previous(): 返回该迭代器的上一个元素。
void add((E e): 在指定位置插入一个元素。
❿ C语言:不懂一个结构List中List p是什么意思
typedef PtrTolNode List; //看这句, List就是那个结构体