C# 如何查找列表中任何范围的编号?

C# 如何查找列表中任何范围的编号?,c#,C#,我有一个列表和一个数组,我想找到数组中属于列表的任何范围的每个元素。 下面是一些代码: int[] number = {1, 2, 3, 5}; public List<double> m = new List<double>(); m.add(1); m.add(1.5); m.add(2.6); m.add(4); m.add(50); int[]number={1,2,3,5}; 公共列表m=新列表(); m、 增加(1); m、 增加(1.5); m、 增加(2

我有一个列表和一个数组,我想找到数组中属于列表的任何范围的每个元素。 下面是一些代码:

int[] number = {1, 2, 3, 5};
public List<double> m = new List<double>();
m.add(1);
m.add(1.5);
m.add(2.6);
m.add(4);
m.add(50);
int[]number={1,2,3,5};
公共列表m=新列表();
m、 增加(1);
m、 增加(1.5);
m、 增加(2.6);
m、 增加(4);
m、 增加(50);
例如: 获取数组中的元素,例如2,我看到范围(在列表中的任何数字之间)通过list==>1.5和2.6回答这个问题

我想要一个将返回此输出的方法:

查找1范围是{1}到{1.5},2范围是{1.5}到{2.6}


我希望我得到了你想要的

void Main()
{
    var numbers =new [] {1, 2, 3, 5};

    //ordering to make sure that ranges is ascending order
    var orderedRanges = new []{1, 1.5, 2.6, 4, 50}.OrderBy(v => v);

    var valuesInRanges = numbers.Select(number => 
                          FormatValueInRange(
                            number,
                            orderedRanges.Last(range => range <= number ),
                            orderedRanges.First(range => range > number )));

    var result = "Find " + string.Join("and ", valuesInRanges);

    Console.WriteLine (result);
}

private string FormatValueInRange(double val, double lower, double upper)
{
    return string.Format(@"{0} is {{{1}}} to {{{2}}} ", val, lower, upper);
}

您需要使用以下逻辑(在伪代码中,带有示例编号):

rangeStart=1
rangeEnd=7
numberOne=3.7
如果numberOne>=rangestart,numberOne=rangestart,numberOne
int[]numbers=newint[]{1,2,3,5};
列表m=新列表();
m、 增加(1);
m、 增加(1.5);
m、 增加(2.6);
m、 增加(4);
m、 增加(50);
foreach(整数n,以数字表示)
{
对于(int i=0;i
您可以使用LINQ

 List<double> m = new List<double>();
   m.Add(1);
   m.Add(1.5);
   m.Add(2.6);
   m.Add(4);
   m.Add(50);

   m.Sort();

   int[] numbers = { 1, 2, 3, 5 };
   foreach (var item in numbers)
   {
        double min = m.Where(x => x <= item).Last();
        double max = m.Where(x => x > item).First();

        Console.WriteLine("find {0} range is {1} to {2}", item, min, max);
   }
List m=新列表();
m、 增加(1);
m、 增加(1.5);
m、 增加(2.6);
m、 增加(4);
m、 增加(50);
m、 排序();
int[]数字={1,2,3,5};
foreach(数值中的var项目)
{
double min=m.Where(x=>x>item).First();
WriteLine(“find{0}范围是{1}到{2}”,item,min,max);
}

您的问题也值得重新表述,因为您到底想做什么有点不清楚。我也想看看您到目前为止都做了些什么。对不起,我很困惑。{1.5}和{2.6}如何在范围2中?通过1.5和2.6之间的列表2内容查找范围1到1.5非常感谢answer@ITDeph伟大的希望我不会因为回答你而收到太多的反对票。帮助新程序员发展解决问题的技能肯定比简单地为他们提供复制粘贴代码要好吗?@SaladinAkara所以你声称,他不会从我的回答中学到任何东西?别忘了否决kmatyaszek和lazyberezovskyNo的所有伟大答案,我不是这么说的。然而,帮助人们发展自己解决问题的技能肯定更好吗?
rangeStart = 1
rangeEnd = 7

numberOne = 3.7

if numberOne >= rangestart and numberOne <= rangeEnd
    // number is in range

numberTwo = 12

if numberTwo >= rangestart and numberOne <= rangeEnd
    // number is NOT in range
int[] numbers = new int[] { 1, 2, 3, 5 };
List<double> m = new List<double>();
m.Add(1);
m.Add(1.5);
m.Add(2.6);
m.Add(4);
m.Add(50);

foreach (int n in numbers)
{
    for (int i = 0; i < m.Count; i++)
    {
        try
        {
            if (m[i] <= n && m[i + 1] >= n)
                MessageBox.Show(
                    string.Format("{0} is between {1} and {2}",
                    n, m[i], m[i + 1]));
        }
        catch (Exception){ }
    }
}
 List<double> m = new List<double>();
   m.Add(1);
   m.Add(1.5);
   m.Add(2.6);
   m.Add(4);
   m.Add(50);

   m.Sort();

   int[] numbers = { 1, 2, 3, 5 };
   foreach (var item in numbers)
   {
        double min = m.Where(x => x <= item).Last();
        double max = m.Where(x => x > item).First();

        Console.WriteLine("find {0} range is {1} to {2}", item, min, max);
   }