使用 FindLast 等方法时如何区分找到的 0 和默认值(int)?

Mat*_*eão 3 c# linq

我有一个整数列表,我需要找到与谓词匹配的最后一个匹配项。使用一个非常简单的例子:

var myList = new List<int> { 1, 5, 6, 20, 18, 2, 3, 0, 4 };
var lastMatch = myList.FindLast(e => e == 0 || e == 2);
Run Code Online (Sandbox Code Playgroud)

这似乎是FindLast. 问题是,default(T)如果没有找到任何内容,该方法就会返回,对于整数来说,这实际上是一个有效值0。所以问题是,如果这个方法返回0,我怎么知道它是否找到了某些东西?对于这种整数情况,有更好的方法吗?

Mar*_*ell 6

FindLastIndex代替使用。如果索引为负,则找不到匹配项。如果它不是负数:那就是您想要的索引,因此:使用具有该索引的索引器。