如何确定一个字符串包含字符串
问题描述:
嗨列表中的任何比赛说我有一个字符串列表:如何确定一个字符串包含字符串
var listOfStrings = new List<string>{"Cars", "Trucks", "Boats"};
,我有其中有一个名称字段一辆选项。
我想查找名称与listOfStrings中某个项目匹配的车辆。
我试图用linq做到这一点,但目前似乎无法完成它。
var matchingVehicles = Vehicles.Where(v => v.Name == one of the listOfStringItem)
有人能帮助我吗?
答
Vehicles.Where(v => listOfStrings.Contains(v.Name))
答
您可以执行Inner Join:
var matchingVehicles = from vehicle in vehicles
join item in listOfStrings on vehicle.Name equals item
select vehicle;
答
将这项工作:
listOfStrings.Contains("Trucks");
答
使用HashSet
一个List
代替,这样你可以找一个字符串,而不必遍历列表。
var setOfStrings = new HashSet<string> {"Cars", "Trucks", "Boats"};
现在你可以使用Contains
方法能够有效地查找匹配:
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));
答
return bool值,它需要字符串或变量。
string country = "southindia";
string cou = "india";
if (country.Contains(cou))
{
Console.WriteLine(country);
}
else
{
Console.WriteLine(cou);
}
这适用于非常短的字符串列表,但它的缩放比例很差。 – Guffa 2011-03-23 22:46:13