c# - 将包含与 InvariantCultureIgnoreCase 函数一起使用 c#

标签 c# contains string-comparison

我正在尝试填充包含用户提供的字母的所有结果。

foreach (var item in entries.PhonebookList.Where(ab => ab.FirstName.Contains(fName, StringComparison.InvariantCultureIgnoreCase)))
{
    Console.WriteLine("Record: {0}  {1}  {2} ", item.ItemNumber, item.FirstName, item.LastName);
}

但是我在 Contains 方法中遇到错误。

"No overload for method 'Contains' takes 2 arguments"

ContainsStringComparison.InvariantCultureIgnoreCase 方法结合使用的最佳方式是什么?

谢谢。

最佳答案

根据文档here您应该改用 string.IndexOf(string, StringComparison)

所以基本上是:

    var entries = new 
    {
      PhonebookList = new[]
      {
        new { ItemNumber = 1, FirstName = "Leonard", LastName = "Hofstadter" }, 
        new { ItemNumber = 2, FirstName = "Sheldon", LastName = "Cooper" }, 
        new { ItemNumber = 3, FirstName = "Howard", LastName = "Wolowitz" }, 
        new { ItemNumber = 4, FirstName = "Sheng", LastName = "?" }, 
      }
    };
    
    var fName = "she";
    foreach (var item in entries.PhonebookList.Where(ab => ab.FirstName.IndexOf(fName, StringComparison.InvariantCultureIgnoreCase) >= 0))
    {
        Console.WriteLine("Record: {0} {1} {2}", item.ItemNumber, item.FirstName, item.LastName);
    }

哪个返回:

Record: 2 Sheldon Cooper

Record: 4 Sheng ?

如果您经常需要一个具有不同StringComparisonContains,该文档还提供了一个您可以实现的扩展方法,可以像Contains 一样使用它(请参阅提供的链接中的给定示例)。

关于c# - 将包含与 InvariantCultureIgnoreCase 函数一起使用 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45659979/

相关文章:

c# - 内部并在私有(private) api 中受到保护

python - 如果 Pandas 列不包含同一行中另一列的值,则在新行中添加另一列的值

c# - 将 Dictionary[String,String] 从 powershell 发送到 TextTransform.exe

c# - 是否可以有两个同名的 ConnectionString?

java - 在 JAVA 中读取列表时,我们可以使用 .contains(BigDecimal.ZERO) 吗?

java - 不会比较从 PrintWriter 读入的 2 个相等的字符串

excel - 在 Excel 中使用不等式进行字符串比较

Java - 映射键查找忽略大小写

c# - autofac 是否支持新的 Web Api 2

jQuery :contains(regex)?