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

C# 如何确定字符串是否包含字符串列表的任何匹配项,c#,asp.net,linq,C#,Asp.net,Linq,您好,我有一个字符串列表: var listOfStrings = new List<string>{"Cars", "Trucks", "Boats"}; 有人能帮我吗?您可以执行以下操作: Vehicles.Where(v => listOfStrings.Contains(v.Name)) 这是否有效: listOfStrings.Contains("Trucks"); 使用哈希集而不是列表,这样您就可以查找字符串,而不必在列表中循环 var setOfString

您好,我有一个字符串列表:

var listOfStrings = new List<string>{"Cars", "Trucks", "Boats"};
有人能帮我吗?

您可以执行以下操作:

Vehicles.Where(v => listOfStrings.Contains(v.Name))
这是否有效:

listOfStrings.Contains("Trucks");

使用
哈希集
而不是
列表
,这样您就可以查找字符串,而不必在列表中循环

var setOfStrings = new HashSet<string> {"Cars", "Trucks", "Boats"};

要检查字符串是否包含以下字符之一(布尔输出):

var str=“要测试的字符串”;
var chr=new HashSet{',',',',',',',',','''','*','$','@','?','!','-',''.''.};
bool test=str.Any(c=>chr.Contains(c));

这适用于非常短的字符串列表,但扩展性很差。
listOfStrings.Contains("Trucks");
var setOfStrings = new HashSet<string> {"Cars", "Trucks", "Boats"};
var matchingVehicles = Vehicles.Where(v => setOfStrings.Contains(v.Name));
var m = Vehicles.Where(v => listOfStrings.Contains(v.Name));
Vehicles.Where(vehicle => listOfStrings.Contains(vehicle.Name))
var str= "string to test";
var chr= new HashSet<char>{',', '&', '.', '`', '*', '$', '@', '?', '!', '-', '_'};
bool test = str.Any(c => chr.Contains(c));