我有这行代码:
HttpURLConnection
现在我知道List.FindIndex Method:
搜索与a定义的条件匹配的元素 指定谓词,并返回第一个从零开始的索引 列表中的一部分或其中的一部分。
我想知道,某个班级的所有物品都有相同的尺寸吗?
如果是,并且由于使用int MyIndex = MyListOfCustomObjects.IndexOf(CandidateObject);
// assume CandidateObject exists in the list
没有指定的谓词,那么条件应该匹配 in在IndexOf
内找到CandidateObject
的订单?
此外,“ ..或其中的一部分。”是什么意思?
答案 0 :(得分:2)
然后应该匹配哪些条件才能在
CandidateObject
中找到MyListOfCustomObjects
?
documentation间接回答:
此方法使用
T
的默认相等比较器EqualityComparer<T>.Default
确定相等性,Equals(T)
是列表中值的类型。
如果您点击EqualityComparer<T>.Default
的链接,您会发现它调用为该类定义的通用Equals(object)
方法(如果存在)或非通用{{ 1}}重载。如果T
未实现/覆盖任何一种方法,则默认情况下会使用引用相等,因为object.Equals(object)
的定义方式如何。
斯科特回答了你关于&#34; ..或其中一部分的问题。&#34;完美的,我不确定你的意思是什么&#34;相同的大小&#34;或者它与平等有什么关系。如果这是您要求的内容,则无法保证同一类的两个对象具有相同的内存占用量。
答案 1 :(得分:1)
所有项目只占用1个索引位置,因此您可以将它们视为“具有相同的大小”。
IndexOf
没有你可以定义的谓词,但它仍然遵循一个。您可以将IndexOf
视为
public int IndexOf(T item)
{
return this.FindIndex(x => item.Equals(x));
}
public int IndexOf(T item, int startIndex)
{
return this.FindIndex(startIndex, x => item.Equals(x));
}
public int IndexOf(T item, int startIndex,int count)
{
return this.FindIndex(startIndex, count, x => item.Equals(x));
}
“或它的一部分”部分用于当您使用startIndex
中的重载时,这允许您从提供的索引开始中途搜索,而不是从0开始例如,如果你想找到第二项,你会找到第一项的索引,然后在结果+ 1上再次调用find来查找第二项索引。