c# - 用于比较嵌套数组的 LINQ 表达式

标签 c# arrays linq ienumerable

我有一个线列表,一条线由一组 LatLngs(纬度/经度)组成,因此,这就是列表的表示方式。

IEnumerable<LatLng[]> lineNetwork;

我正在尝试计算返回 lineNetwork 中连接到 givenLine 的所有行所需的 LINQ 表达式。要连接它们,它们的纬度和经度必须等于 givenLine 中的纬度和经度。

LatLng[] givenLine = 
{ 
    new LatLng(Latitude: 0.1, Longitude: 0.1),
    new LatLng(Latitude: 0.2, Longitude: 0.2),
    new LatLng(Latitude: 0.3, Longitude: 0.3)
}

IEnumerable<LatLng[]> connectedLines = lineNetwork.LINQEXPRESSIONRETURNSCONNECTEDLINES(givenLine);

最佳答案

您可能应该为 LatLng 类型定义相等性,我假设它是一个结构。

你的查询会是这样的

var connectedLines = lineNetwork.Where( line => line.Any( coord => givenLine.Contains( coord ) ) );

在这里,我假设给定正确的相等性实现 Contains() 将返回 true。

关于c# - 用于比较嵌套数组的 LINQ 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50445199/

相关文章:

C# TCP 服务器同时接收到 Python 客户端发送的两条消息

c# - 最小锁定线程安全哈希表?

javascript - 如何使用 forEach 循环向下计数 javascript

c# - 帮助使用子查询进行 linq 查询

c# - LINQ 到 XML : Collapse mutliple levels to single list

c# - C# XNA 的 Javascript(或类似)游戏脚本

c# - 在aspx中按属性查找元素

java - 如何在 Android 中从数组中提取字符串?

python - 如何 mpf 一个数组?

c# - 具有 LINQ、JOIN 和 ORDER BY 的 Entity Framework 以及连接表中的列