c# - 如何将点序列转换为范围序列?

标签 c# collections

例如,我有一个点序列

List points = new List {0, 1, 2, 4, 5 ,7};

我想将它转换为一系列范围(我的类型 Range(leftPoint, rightPoint) )。例如,结果是

List<Range> ranges: {0, 1} {1, 2} {2, 4} {4, 5} {5, 7}

最佳答案

您可以使用 LINQ(假设列表已经排序):

List<Range> rangeList = Enumerable.Range(0, points.Count - 1)
    .Select(i => new Range(points[i], points[i + 1]))
    .ToList();

关于c# - 如何将点序列转换为范围序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37388110/

相关文章:

c# - 如果设置了 AutoDeleteOnIdle,服务总线是否删除没有过滤器/规则的主题订阅?

c# - 如何从 Jenkins 的多个测试项目中获取 dotCover 覆盖率报告

c# - 在C#或vb.net中使用wmlib.dll刻录CD音频而没有gab

c# - 将本地 dll 放在 ASP.NET 项目中的什么位置?

Swift/SpriteKit 访问对象的变量 + 删除节点

C# Winforms ListBox 项目满足条件时设置背景色

php - 使用不同的过滤 Magento 集合而不是产品

c# - 指定的填充模式对此算法无效 - .net Core

java - 返回一个 ImmutableMap <File, File>

Java ArrayBlockingQueue 设计