【问题标题】:Linq Query filtering resultsLinq 查询过滤结果
【发布时间】:2014-06-24 20:55:19
【问题描述】:

我对 LINQ 不是很熟悉。这是一些代码:

if (!String.IsNullOrEmpty(searchString))
            {
                games = games.Where(x => x.Name.Contains(searchString));
            }

按应有的方式工作;但是,我想要什么,而不是根据用户输入的任何文本过滤结果,如果用户输入说“L”,那么在 LINQ 查询中是否有办法让它通过x.Name 的第一个字母过滤任何x.Name 包含该字母。

I.E.说我有...

League_of_Legends
LOTRO_
Dota_2
Call_of_Duty_4
Final_Fantasy_7

并且用户输入“L”而不是返回除了Dota 2之外的所有内容,它是否可以只返回League of LegendsLOTRO,因为它们是仅有的两个名字实际上以“L”开头的人。

我假设它类似于...games = games.Where(x => x.Name.Contains<***something***>(searchString));

谢谢!

【问题讨论】:

    标签: c# linq filter asp.net-mvc-5


    【解决方案1】:

    我假设您正在寻找StartsWith。请注意,这适用于任何前缀,而不仅仅是单个字母。

    games = games.Where(x => x.Name.StartsWith(searchString));
    

    如果您想要不区分大小写的搜索(例如,小写 l 也匹配 League_of_Legends),请使用:

    games = games.Where(x => x.Name.StartsWith(searchString, StringComparison.CurrentCultureIgnoreCase));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2012-07-08
      • 2012-04-20
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多