Linq查询过滤结果

本文关键字:结果 过滤 查询 Linq | 更新日期: 2023-09-27 18:10:04

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

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

正常工作;然而,我想要的是,而不是根据用户输入的任何文本过滤结果,如果用户输入说"L",在LINQ查询中是否有一种方法可以让它通过x.Name的第一个字母过滤任何包含该字母的x.Name

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));

谢谢!

Linq查询过滤结果

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

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

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

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