簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM