Linq查询过滤结果

时间:2014-06-24 20:55:19

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

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

谢谢!

1 个答案:

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