在这种情况下,我有两个字符串数组。
string[] array1 = new string[] { "aa", "bb", "cc"};
string[] array2 = new string[] { "abcd", "abbc", "abc", "cc", "abb" };
我想使用 linq 查询仅从 array2
中选择至少有一个项目形式 array1
的项目。
所以在这种情况下我想得到回应:
{ "abbc", "cc", "abb" };
我开始使用 linq 工作,所以请给我一些解释,说明我做错了什么。在这一点上,这是我最好的尝试:
var res = array2.Select(n => array1.Select( c=> c.Contains(n))).ToArray();
但它返回:
array[] {array1, array1, array1, array1, array1}
最佳答案
问题是,通过使用 array1.Select(c=> c.Contains())
,您返回了一个 bool 值集合(包含:是/否)。
var res = array2.Where(x => array1.Any(y => x.Contains(y))).ToArray();
关于c# - 合并两个 string[] 数组的 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59319481/