【发布时间】:2019-12-20 12:42:47
【问题描述】:
是否有任何基于 lambda 的方法可以让人们根据自定义逻辑找到数组中元素的(第一次)出现的索引?
我知道我可以使用 Array.First 找到 元素 本身,但是我可以在不手动迭代数组的情况下找到该元素的索引吗?
【问题讨论】:
-
你的意思是你想通过它的值找到特定元素的索引?
-
您的意思是基于属性值?对象本身有
Array.IndexOf。 -
Array.IndexOf? -
Array和List都有方便的方法;有关对任何IEnumerable执行此操作的更一般性问题,请参阅 this(所有这些答案都可以轻松扩展到谓词而不是特定值,如果需要)。 -
如果调用 Array.IndexOf(),则迭代会通过数组进行。但是,如果我正确理解了这个问题,您需要您要查找的第一项的索引。但是您不想遍历整个数组或数组的一部分。不幸的是,如果元素不在数组的开头或结尾,这是不可能的。这是由于数组的构建机制。