C# WebAPI-如何删除大小写敏感度?

C# WebAPI-如何删除大小写敏感度?,c#,asp.net-web-api,asp.net-web-api2,C#,Asp.net Web Api,Asp.net Web Api2,我在WebAPI中执行一个搜索函数,但它只返回与XML数据相应的正确项。例如,如果我写Milk或Apple,它只会返回项目。如果我写牛奶、苹果或者苹果,我怎么能让它退回这些物品呢 控制器: 您可以将字符串转换为小写 public IHttpActionResult GetItems(string name) { List<Item> allItems = GetAllItems(); return Ok(allItems.Where(i => i.Name.T

我在WebAPI中执行一个搜索函数,但它只返回与XML数据相应的正确项。例如,如果我写Milk或Apple,它只会返回项目。如果我写牛奶、苹果或者苹果,我怎么能让它退回这些物品呢

控制器:


您可以将字符串转换为小写

public IHttpActionResult GetItems(string name)
{
    List<Item> allItems = GetAllItems();

    return Ok(allItems.Where(i => i.Name.ToLower().Contains(name.ToLower())));
}
我没有测试它,但它应该可以工作。

代码
allItems.where i=>i.Name.ToLower.Containsname.ToLower可能的等号非等号副本Contains@Selvin我们使用EqualName比较allItems列表中的单个项目,StringComparison.CurrentCultureIgnoreCase,它将在内部忽略我的名字的大小写。如果我在列表中迭代了一个元素,并与name输入参数进行比较,我可以使用equals作为compare to contains,因为它将为我提供可靠的后果例如:-如果我有一个单词Mapple,并且在结果输出中使用contains作为apple关键字,我将失败,因为我正在寻找apple关键字而不是Mapple。奶昔,苹果派。。。对于搜索,我们宁愿使用包含。。。OP还在他的代码中使用了Contains…我没有测试它,但它应该可以工作。
public IHttpActionResult GetItems(string name)
{
    List<Item> allItems = GetAllItems();

    return Ok(allItems.Where(i => i.Name.ToLower().Contains(name.ToLower())));
}
 public IHttpActionResult GetItems(string name)
 {
     List<Item> allItems = GetAllItems();

     //We are ignoring the Case Sensitivity and comparing the items with name
     return Ok(allItems.Where(x => x.Name.Equals(name,StringComparison.CurrentCultureIgnoreCase));
}