如何通过Linq来查找一个元素在数组中的位置,比如下面这个例子;

for (int i = 0; i < words.Length; i++)
{
    if (words[i].Contains("abc"))
    {
        keyIndex = i;
    }
}

简单的方法直接使用Array类的Linq扩展Array.FindIndex,如下:

int keyIndex = Array.FindIndex(words, w => w.Contains("abc"));

或者使用下面Linq方法,不过这种方法如果不存在会抛Exception:

var keyIndex = words.Select((v, i) => new { Word = v, Key = i })
               .FirstOrDefault(s => s.Word.Contains("abc"))
               .Key;
已赞 3 0 评论