List 实例列表中的DART:indexOf()

List 实例列表中的DART:indexOf(),list,dart,indexof,List,Dart,Indexof,如何获取列表中一个实例的索引 类点{ int x,y; 点(这个.x,这个.y); } void main(){ var pts=新列表(); int-Lx; 巧妙地; 点pt=新点(25,55);//新实例 增加(pt); int index=pts.indexOf(25);//问题!!!如何在实例列表中获取索引? 如果(索引!=-1){ Lx=lp1.elementAt(index.x); Ly=lp1.elementAt(索引).y; 打印('X=$Lx Y=$Ly'); } //当找不到

如何获取列表中一个实例的索引

类点{
int x,y;
点(这个.x,这个.y);
}
void main(){
var pts=新列表();
int-Lx;
巧妙地;
点pt=新点(25,55);//新实例
增加(pt);
int index=pts.indexOf(25);//问题!!!如何在实例列表中获取索引?
如果(索引!=-1){
Lx=lp1.elementAt(index.x);
Ly=lp1.elementAt(索引).y;
打印('X=$Lx Y=$Ly');
}
//当找不到元素时,需要一些帮助程序来满足'firstWhere'
var虚拟=新点(空,空);
var p=第一个点,其中((e)=>e.x==25,或等于:()=>dummy);
如果(p!=虚拟){
//不知道这是否仍然与您的问题相关
//上面的行已经得到了元素
var lx=pts[pts.indexOf(p)];
打印('x:${lx.x},y:${lx.y}');
}

什么应该
pts.indexOf(25)<代码> x>代码>或<代码> y>代码>等于<代码> 25代码/代码>嗨!第一个元素x等于25。京特的答案是一个很好的方式来做你正在寻找的,并且确实是你问的问题的正确答案。然而,如果你经常做这些查找,你可能想考虑存储点。在地图中键入x或y值。您仍然可以使用
Map.values
像列表一样访问该地图,但逐点查找x值要快得多(Gunter的答案是O(n),而地图将在O(logn)时间内找到该点)。