我有一个列表项
List<string> xmlValue = new List<string>();
在此我有项目{"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;
答案 0 :(得分:4)
List<string> xmlValue = new List<string>()
{"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();
答案 1 :(得分:1)
在这种情况下我选择不使用LINQ扩展方法并使用“老式”循环:
string search = "English";
var foundIndices = new List<int>(xmlValue.Count);
for (int i = 0; i < xmlValue.Count; i++) {
if (xmlValue[i] == search) {
foundIndices.Add(i);
}
}
在我看来,它更像是这样的可读性;此外,foundIndices
列表永远不会包含任何不需要的值。