如何在c# asp.net中搜索结构的LIST项

本文关键字:结构 搜索 LIST net asp | 更新日期: 2023-09-27 17:50:23

我有以下结构体

 public struct Colors
 {
     public double MinV;
     public double MaxV;
     public string color;
 }
 List<Colors> ColorValues = new List<Colors>();

我需要检索值位于Minv和Maxv之间的元素的颜色。

它的工作方式如下

i=0;
while (i < ColorValues.Count)
{
    if (value> ColorValues[i].MinV && value< ColorValues[i].MaxV) 
        Color=ColorValues[i].color;
    i++;
}

我需要用快速搜索方式代替这个循环。

如何在c# asp.net中搜索结构的LIST项

使用LINQ:

如果需要所有符合条件的结构体:

 var allThatFitsCriteria = ColorValues.Where(x => value > x.MinV && value < x.MaxV);

如果只需要第一个(如果存在):

 var firstThatFitsCriteriaOrNull = ColorValues.FirstOrDefault(x => value > x.MinV && value < x.MaxV);

一旦你找到了你要找的东西,就会跳出来

i=0;
while (i < ColorValues.Count)
{
    if (value> ColorValues[i].MinV && value< ColorValues[i].MaxV) 
    {
        Color=ColorValues[i].color; 
        break; 
    }
    i++;
}