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就是那個結構體