如何在c#asp.net中搜索项目列表?

时间:2014-03-14 05:32:49

标签: c# asp.net

我有以下结构

 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++;
}

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

2 个答案:

答案 0 :(得分:2)

使用LINQ:

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

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

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

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

答案 1 :(得分:0)

一旦找到了您正在寻找的内容

,优化就会爆发
i=0;
while (i < ColorValues.Count)
{
    if (value> ColorValues[i].MinV && value< ColorValues[i].MaxV) 
    {
        Color=ColorValues[i].color; 
        break; 
    }
    i++;
}