有一个在运行时添加字符串的列表。列表中的字符串可以像
List<string> myList=new List<string>();
0 7- 9
1 3 - 6
2 1 -3
3 10-12
这里包含在列表中的字符串没有相同的模式。假设我想找到 3 - 6 的索引。所以我使用了一个表达式
3\s*\-\s*6
现在如何在 Array.Indexof 方法中使用它,以便我可以从 mylist 中获取该元素的索引。
尝试
myList.FindIndex(s => new Regex(@"3\s*\-\s*6").Match(s).Success);
编辑:工作样本:
List<string> myList = new List<string>
{
"7- 9",
"3 - 6",
"1 -3",
"10-12"
};
int index = myList.FindIndex(s => new Regex(@"3\s*\-\s*6").Match(s).Success);
Console.WriteLine(index); // 1
尝试这个 :
var match = Regex.Match(String.Join(String.Empty, myList.ToArray()), @"3\s*\-\s*6");
if (match.Success) {
// match.Index to get the index
// match.Value to get the value
}
你可以做
str.Replace(" ", "");
然后你摆脱空白
并且可以做到
str.IndexOf("3-6");
您可以使用 LINQ 执行相同操作:
var regex = new Regex(@"3\s*\-\s*6");
var index = myList.Select((x, i) => new { x, i })
.Where(x => regex.Match(x.x).Success)
.Select(x => x.i)
.First()