我对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 Legends
和LOTRO
,因为它们是唯一两个名字实际以“L”开头的人
我假设它的某些东西...... games = games.Where(x => x.Name.Contains<***something***>(searchString));
谢谢!
答案 0 :(得分:3)
我假设您正在寻找StartsWith
。请注意,这适用于任何前缀,而不仅仅是一个字母。
games = games.Where(x => x.Name.StartsWith(searchString));
如果您想要不区分大小写的搜索(例如,小写l
也匹配League_of_Legends
),请使用:
games = games.Where(x => x.Name.StartsWith(searchString, StringComparison.CurrentCultureIgnoreCase));