如何从列表中查找元素的索引<;字符串>;,一个元素包含一个特定的部分
本文关键字:元素 一个 包含一 字符串 列表 查找 索引 gt lt | 更新日期: 2023-09-27 18:30:11
我有一个列表,其中包含。
1. This is house.
2. I am writing with pen.
现在我想知道字符串在哪个索引处包含house(1)如何在没有for循环的情况下做到这一点?Array.IndexOf将不起作用,因为它找不到具有相同匹配的元素
查找第一个索引:
var idx = myList.FindIndex(x => x.Contains("abc"));
一种优雅的方法是使用FindIndex
List<String> exampleList = new List<String>();
exampleList.Add("This is a house.");
exampleList.Add("I am writing with pen");
int index = exampleList.FindIndex(x => x.Contains("house"));
Console.WriteLine(index); //0
index = exampleList.FindIndex(x => x.Contains("pen"));
Console.WriteLine(index); //1
FindIndex搜索与定义的条件匹配的元素通过指定的谓词,并返回首次出现在列表中或列表的一部分。
var indexes = Enumerable.Range(0, list.Length)
.Where(index => list[index].Contains("1."));
干净简单的
string[] data = { "This is house", "I am writing with pen." };
List<string> list = new List<string>(data);
int index = list.FindIndex(str => str.Contains("house"));
string key = "house";
var result = yourlist.Select((x,y)=>new{ListIndex = y, ElementIndex = x.IndexOf(key)})
.Where(x=>x.ElementIndex > -1)
.ToList();
使用此代码,您将得到一个匿名类型的集合,该集合具有两个属性:第一个属性具有列表的索引,第二个属性具有字符串
int index = Array.FindIndex(list.ToArray(), i => i.Contains("house") );
myList.FindIndex(x => x.ToLower().Contains("house"))
如果您想以不区分大小写的方式进行搜索,那么这就是解决方案。