我有以下结构
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++;
}
我需要用快速搜索的方式替换此循环。
使用LINQ:
如果您需要所有符合条件的结构:
var allThatFitsCriteria = ColorValues.Where(x => value > x.MinV && value < x.MaxV);
如果仅需要第一个(如果存在):
var firstThatFitsCriteriaOrNull = ColorValues.FirstOrDefault(x => value > x.MinV && value < x.MaxV);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句