//先用contains判断是否有该元素。
if(list集合.contains(对象)){。
list集合.indexOf(对象名);。
因为List 是一个元素有序的、可以重复、可以为 null 的集合;
所以;
indexOf可以获取元素出现的第一个位置的引索,与之相反的是lastlndexOf获取元素最后出现的位置引索,如果集合中没有该元素则返回-1,其原理都是利用equals方法配合历遍来判断。
扩展资料:
C++中list用法详解
.1list中的构造函数:
list() 声明一个空列表;
list(n) 声明一个有n个元素的列表,每个元素都是由其默认构造函数T()构造出来的。
list(n,val) 声明一个由n个元素的列表,每个元素都是由其复制构造函数T(val)得来的。
list(n,val) 声明一个和上面一样的列表。
list(first,last) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素。
1、可以直接用标准模板库提供的find函数或者find_if函数查找。输出的话可以用for_each函数。
2、例程:
list<int> mylist;。
mylist.push_back( 1 );。
mylist.push_back( 11 );。
mylist.push_back( 111 );。
mylist.push_back( 1111 );。
int a = 111;。
list<int>::iterator it = find( mylist.begin(), mylist.end(), a ); //查找。
if ( it != mylist.end() )。
cout << a << " is in the list" << endl;。
for ( it = mylist.begin(); it != mylist.end(); ++it ) //输出。
{
cout << *it << "\t";。
}
cout << endl;。
copy(mylist.begin(), mylist.end(), ostream_iterator<int> (cout, "\t")); //或者这样输出。
cout << endl;。
list怎么获取元素里面的一个值?如果获得list某项数据的话,可以。
list.getItemAt(i);。
如果需要获得某个CellRenderer实例的话可以。
list.itemToCellRenderer( list.getItemAt(i) );先迭代出里面的元素然后对每个元素取属性值 List list.....比如里面存的是StudentStudent有一个属性name Iterator it = list.iterator();while(it.hasNext()){Student stu = it.next();String name = stu.getName();//得到了里面的元素的属性了}。
依次处理list的元素list[i],用dup装去重元素,mul装重复元素。先检查dup是否包含元素list[i],如果包含则加入mul中。如果没有则加入dup中。最后mul中就是重复数据,dup中就是去掉重复元素的列表。下面是一个实例,首先生成一个列表list,然后找出重复元素。
public class Duplication。
public static void main(String[] args)。
{
List<Integer> list = new ArrayList<Integer>();。
for(int i = 1;i <= 10;i++)。
{
if(i%3 == 0) continue;。
if(i%2 == 0)。
{
list.add(i);。
list.add(i);。
}
else。
list.add(i);。
}
System.out.println(list);。
List<Integer> dup = new ArrayList<Integer>();。
List<Integer> mul = new ArrayList<Integer>();。
for(int a:list)。
{
if(dup.contains(a))。
mul.add(a);。
else dup.add(a);。
}
System.out.println(dup);。
System.out.println(mul);。
}
方法一: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);
}
}
原文地址:http://www.qianchusai.com/%E6%9F%A5%E6%89%BElist%E9%87%8C%E9%9D%A2%E7%9A%84%E6%95%B0%E6%8D%AE.html