列表索引搜索

我有一个List项目

List xmlValue = new List(); 

在这里我有项目{"English","Spanish","French","Hindi","English","English"}我需要搜索所有英语项目及其Index(item index) 。 我编写了下面的代码,它只为1项返回索引。如何获取下一项的索引。

  string search = "English"; int index = xmlValue.Select((item, i) => new { Item = item, Index = i }) .First(x => x.Item == search).Index; 

 List xmlValue = new List() {"English", "Spanish", "French", "Hindi", "English", "English"}; string search = "English"; int[] result = xmlValue.Select((b, i) => b.Equals(search) ? i : -1) .Where(i => i != -1).ToArray(); 

在这种情况下,我选择不使用LINQ扩展方法,并使用“老式”循环:

 string search = "English"; var foundIndices = new List(xmlValue.Count); for (int i = 0; i < xmlValue.Count; i++) { if (xmlValue[i] == search) { foundIndices.Add(i); } } 

在我看来,它更像是这样的可读性; 此外, foundIndices列表永远不会包含任何不需要的值。