[英]How to determine if a string contains any matches of a list of strings
嗨說我有一個字符串列表:
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))
使用HashSet
而不是List
,這樣您就可以查找字符串而無需遍歷列表。
var setOfStrings = new HashSet<string> {"Cars", "Trucks", "Boats"};
現在,您可以使用Contains
方法有效地查找匹配項:
var matchingVehicles = Vehicles.Where(v => setOfStrings.Contains(v.Name));
這會工作:
listOfStrings.Contains("Trucks");
var m = Vehicles.Where(v => listOfStrings.Contains(v.Name));
要檢查字符串是否包含其中一個字符(布爾輸出):
var str= "string to test";
var chr= new HashSet<char>{',', '&', '.', '`', '*', '$', '@', '?', '!', '-', '_'};
bool test = str.Any(c => chr.Contains(c));
您可以執行內部聯接 :
var matchingVehicles = from vehicle in vehicles
join item in listOfStrings on vehicle.Name equals item
select vehicle;
Vehicles.Where(vehicle => listOfStrings.Contains(vehicle.Name))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.