我有一个字符串数组和一个字符串列表。例如,
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的一部分。 例如:检索到的项目应该是&#39; car_blue&#39;,&#39; car_red&#39;和&#39; truck_yellow&#39;?
答案 0 :(得分:3)
您可以使用LINQ“Where
使用stringList
之前的部分过滤_
:
var result = stringList.Where(x => stringArray.Contains(x.Split('_')[0]));
答案 1 :(得分:3)
您必须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());
答案 2 :(得分:2)