簡體   English   中英

比較字符串數組中的元素是否存在於另一個列表中C#

[英]Compare if elements in string array exists in another list c#

我有一個字符串數組和一個字符串列表。 例如,

string[] stringArray = {"car", "bike", "truck"};
List<string> stringList = new List<string>{"car_blue", "car_red", "truck_yellow", "ship_black", "rocket_orange"};

從數組和列表中,我想將stringArray與stringList進行比較,並檢索stringArray中的,也是stringList一部分的項目。 例如:檢索到的項目應該是“ car_blue”,“ car_red”和“ truck_yellow”?

你可以使用LINQ” Where過濾stringList使用部分之前_

var result = stringList.Where(x => stringArray.Contains(x.Split('_')[0]));

您必須用_ Split以獲取所有令牌,然后可以使用Intersect...Any

var itemsInBoth = stringList.Where(s => stringArray.Intersect(s.Split('_')).Any());

如果您想忽略這種情況,也可以接受Car_Yellow

var itemsInBoth = stringList.Where(s => stringArray.Intersect(s.Split('_'), StringComparer.OrdinalIgnoreCase).Any());

不必使用拆分的最佳方法是

string[] oneMinEnabledTime = stringList.Where(x => stringArray.Any(ele => x.ToLower().Contains(ele.ToLower()))).ToArray();

或者如果您想列出

List<string> oneMinEnabledTime = stringList.Where(x => stringArray.Any(ele => x.ToLower().Contains(ele.ToLower()))).ToList();

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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