Как выбрать диапазоны значений по вхождению значения в диапазон?

Для выбора диапазонов значений по вхождению значения в диапазон в C# можно использовать различные способы, например, с помощью использования LINQ или обычных циклов.

Одним из популярных способов является использование LINQ запросов. Например, предположим, у вас есть список диапазонов, представленных парами значений start и end, и вам нужно найти все диапазоны, в которых содержится определенное значение value. Вот пример кода на C#:

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        var ranges = new List<(int start, int end)>
        {
            (1, 5),
            (6, 10),
            (11, 15)
        };

        int value = 8;

        var selectedRanges = ranges.Where(range => value >= range.start && value <= range.end);

        foreach (var range in selectedRanges)
        {
            Console.WriteLine($"Value {value} is in range ({range.start}, {range.end})");
        }
    }
}

В этом примере мы создаем список диапазонов ranges и значение value. Затем с помощью LINQ запроса мы выбираем диапазоны, в которых value входит в заданный диапазон. Результат выводится на консоль.

Также можно использовать классический подход с использованием цикла, чтобы проверить каждый диапазон по очереди:

foreach (var range in ranges)
{
    if (value >= range.start && value <= range.end)
    {
        Console.WriteLine($"Value {value} is in range ({range.start}, {range.end})");
    }
}

Оба способа позволяют выбрать диапазоны значений по вхождению в заданный диапазон. Выбор между ними зависит от ваших предпочтений и конкретных требований вашего приложения.