c# - 合并两个 string[] 数组的 LINQ 查询

标签 c# linq

在这种情况下,我有两个字符串数组。

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/

相关文章:

c# - 如何保证已注入(inject)postsharp代码?

c# - 如何在C#中将数据从文本框插入到datagridview

c# - MediaPlayer 中的内存泄漏

c# - 使用 ObserveOnDispatcher 对 IObservable<T> 进行单元测试

c# - 从具有多个条件的数据表中选择

c# - 通过使用 2D 变换旋转图像填充矩形来模拟透视

c# - 10 秒后重定向到新的 wpf 窗口?

.net - 如何在动态 linq 查询中使用 "contains"或 "like"?

c# - 使用 RavenDB 和 LINQ 查找至少包含子集中所有元素的对象

c# - 即使要连接的行不存在,也使 JOIN 查询匹配