如何确定字符串是否包含字符串列表的任何匹配项

Cod*_*r 2 16 c# linq asp.net

嗨说我有一个字符串列表:

var listOfStrings = new List<string>{"Cars", "Trucks", "Boats"};
Run Code Online (Sandbox Code Playgroud)

我有一个车辆选项,其中有一个名称字段.

我想找到名称与listOfStrings中的一个项目匹配的车辆.

我正试图用linq做这个,但目前似乎无法完成它.

var matchingVehicles = Vehicles.Where(v => v.Name == one of the listOfStringItem)
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我吗?

Dan*_*ite 13

Vehicles.Where(v => listOfStrings.Contains(v.Name))
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 12

使用a HashSet而不是a List,这样您就可以查找字符串而无需遍历列表.

var setOfStrings = new HashSet<string> {"Cars", "Trucks", "Boats"};
Run Code Online (Sandbox Code Playgroud)

现在您可以使用该Contains方法有效地查找匹配项:

var matchingVehicles = Vehicles.Where(v => setOfStrings.Contains(v.Name));
Run Code Online (Sandbox Code Playgroud)


Rob*_*Rob 6

这会工作:

listOfStrings.Contains("Trucks");
Run Code Online (Sandbox Code Playgroud)