Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较字符串数组中的元素是否存在于另一个列表c中#_C#_Arrays_String_List - Fatal编程技术网

C# 比较字符串数组中的元素是否存在于另一个列表c中#

C# 比较字符串数组中的元素是否存在于另一个列表c中#,c#,arrays,string,list,C#,Arrays,String,List,我有一个字符串数组和一个字符串列表。比如说, string[] stringArray = {"car", "bike", "truck"}; List<string> stringList = new List<string>{"car_blue", "car_red", "truck_yellow", "ship_black", "rocket_orange"}; string[]stringArray={“汽车”、“自行车”、“卡车”}; List stringL

我有一个字符串数组和一个字符串列表。比如说,

string[] stringArray = {"car", "bike", "truck"};
List<string> stringList = new List<string>{"car_blue", "car_red", "truck_yellow", "ship_black", "rocket_orange"};
string[]stringArray={“汽车”、“自行车”、“卡车”};
List stringList=新列表{“车蓝”、“车红”、“卡车黄”、“船黑”、“火箭橙”};
从数组和列表中,我想比较stringArray和stringList,并检索stringArray中的项目,这些项目也是stringList的一部分。
取回的物品应该是“蓝色汽车”、“红色汽车”和“黄色卡车”

您可以使用LINQ'
Where
来过滤
stringList
,使用
前面的部分:

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

您必须按
分割
,以获取所有令牌,然后您可以使用
相交…任何

var itemsInBoth = stringList.Where(s => stringArray.Intersect(s.Split('_')).Any());
如果您想忽略此情况,也可以接受
Car\u 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();
List-oneMinEnabledTime=stringList.Where(x=>stringArray.Any(ele=>x.ToLower().Contains(ele.ToLower())).ToList();

你试过什么?你的代码在哪里?我试过“stringList.Intersect(stringArray);”,但没有找到匹配项。“car”不是“car_blue”。“car_blue”是“car_blue”。是否需要
列表
中的字符串始终有“u”,并且字符串的第一部分应与
数组
中的字符串匹配?@LittleFlyingTurtle如果你的
列表
中的字符串中没有“u”,你应该根据此说明编辑你的问题。并对同样的答案进行评论。。我想路西法的答案在任何情况下都会对你有所帮助(有或没有“uz”),我会添加
.ToList()
更好地执行resultx.Split(“'''[1])也很重要。我已经尝试了你的方法,但仍然无法检索到我想要的项目列表。然而,我的列表中的项目看起来是这样的:“陆地\\汽车\蓝色”,“海洋\\船舶\黑色”。。。我想不出这个方法有什么问题。你面临的问题是什么?