用于根据范围查找当前项目的 C# 数据结构

标签 c# algorithm data-structures

我正在寻找一个数据结构或确认一个不存在的数据结构,您可以在其中输入项目和与该项目的开头相关联的数值是有效的。

想象一下,您正在尝试找出高分的奖励。

元素看起来像这样: 0 - 无 100 - 银星 300 - 金星

然后我想根据我当前的分数快速评估我当前的奖励或任何通用项目。如果我通过 270,我将获得银星。

当我第一次不得不实现这样的东西时,我使用了一个双元组列表,第一个值是数字楼层,第二个值是项目。这当然有效。但当然,随着列表的增长,查找时间也会增加。

我必须再次实现与此类似但具有标准化值的东西。同样,我可以做同样的事情,但如果有更好更有效的方法使用树,请指出那个方向。

无论结构是否正确,我都会为规范化和原始值搜索编写一个包装器。

最佳答案

试试这个:

var levels = new []
{
    new { score = 0, level = "nothing" },
    new { score = 100, level = "silver" },
    new { score = 300, level = "gold" },
};

var score = 270;

var level = levels.OrderBy(x => x.score).Where(x => x.score <= score).Last().level;

Console.WriteLine(level);

这让我在控制台上获得了 silver

关于用于根据范围查找当前项目的 C# 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55273807/

相关文章:

c# - 将电子邮件作为主键是个坏主意吗?

c++ - 如何在 C++ 中定义每个维度都是不同类型的 3d 数组?

c# - 表示用于查找的三元图数据

尝试向循环链表添加元素时出现 java.lang.NullPointerException

javascript - 如何使用 Javascript 从 C# 代码设置的 div 内的 span 元素获取值

javascript - 在 JavaScript 代码中从 Controller 调用函数

javascript - 客户端文本宽度的服务器端计算

algorithm - 这个线性搜索实现真的有用吗?

algorithm - 将一组整数中的哪些整数进行异或以形成目标整数?

python - 反向打印链表