c# - 使用参数 c# 查找列表的索引

标签 c# .net regex linq

我基本上是在尝试转换它:

private int FindIndexOf(string valueOne, string valueTwo, List<string> list)
{
    return list.FindIndex(s =>
        s.ToLower().Contains(valueOne.ToLower()) &&
        s.ToLower().Contains(valueTwo.ToLower())
        );
}

像这样使用参数:

private int FindIndexOf(List<string> list, params string[] args)
{
    string pattern = String.Format("([{0}]+)", String.Join("]+[", args));
    Regex regEx = new Regex(pattern, RegexOptions.IgnoreCase);
    return list.FindIndex(s => regEx.IsMatch(s.ToLower()));
}

我不太擅长 RegEx,我想不出在 linq 中实现它的方法。有什么建议吗?

最佳答案

您不需要正则表达式,也不需要 ToLower:

private int FindIndexOf(List<string> list, params string[] args)
{
    return list
       .FindIndex(s => args
           .All(str => s.IndexOf(str, StringComparison.OrdinalIgnoreCase) >= 0));
}

为什么 ToLower 可能不正确:https://stackoverflow.com/a/234751/284240

关于c# - 使用参数 c# 查找列表的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20435479/

相关文章:

c# - 如何解码 JWT Token?

java - 在java中删除字符串中的特殊字符?

jQuery:在输入时将文本 URL 转换为链接

c# - Visual Studio 无可用源

c# - 将 JSON 字符串中的数据覆盖到现有对象实例

.NET获取所有用户均可访问的本地临时目录

.net - 我想找到 { } 之间的值

c# - 如何在选择中没有计数器的情况下计数?

c# - 在 JsonSerializerSettings 中将 null 更改为空

c# - CaptureSource.Start() 在 Windows Phone Silverlight 8.1 中抛出 System.UnauthorizedAccessException