C# 中的范围划分

2024-01-07

将范围值分组,例如范围在 0 到 100 之间 我有四个组 A、B、C、D。如果我想将范围分为四组 喜欢 0-25D组 C组26-50 51-75 B组 A组76-100

如何使用 C# 进行此类分组,并将范围保存在列表中。 那么如何判断某个数字属于哪一组呢? 例如55属于B组。

请帮忙 !


你可以尝试这样的事情:

    var someNumbers = new [] { 10,67,45,26,78,53,12,45,68};
    var groupNames = new [] { "A", "B", "C", "D" };

    //                               Key                      Value
    var result = someNumbers.GroupBy(v => groupNames[v / 25], p => p);

    foreach(var v in result.OrderBy(i => i.Key))
    {
        Console.WriteLine(v.Key);
        foreach(var k in v)
            Console.WriteLine("  " + k);
    }

我将值分组为value / 25这将是一个整数除法,并将值按 25 的部分分组。例如: value13. 13 / 25 = 0 so 13将按0分组。例如:value67. 67 / 25 = 2,因此将按 2 分组。

唯一的问题是,如果该值超过 99,您会得到一个IndexOfOutBoundsException.

这可能更安全:

public static void Main()
{
    var someNumbers = new [] { 10,67,45,26,78,53,12,45,68};
    var groupNames = new [] { "A", "B", "C", "D" };

    var result = someNumbers.GroupBy(v => v / 25, p => p);

    foreach(var v in result.OrderBy(i => i.Key))
    {
        // check if the key can be used as index for the name array.
        if(v.Key >= groupNames.Length)
            Console.WriteLine(v.Key + " no name for that");
        else
            Console.WriteLine(groupNames[ v.Key]);

        foreach(var k in v)
            Console.WriteLine("  " + k);
    }

}

在这里查看现场演示:https://dotnetfiddle.net/8XElaZ https://dotnetfiddle.net/8XElaZ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的范围划分 的相关文章

随机推荐

  • glReadPixels() 会消耗单个核心的所有CPU周期

    我有一个带有 OpenGL 窗口的 SDL2 应用程序 它表现良好 当它运行时 该应用程序与我的 60Hz 显示器同步 并且我看到该应用程序的 CPU 使用率为 12 到目前为止 一切都很好 但是 当我通过从深度缓冲区 绘制后 读取单个 深
  • 检查 list 是否包含任何其他列表

    我有一个这样的参数列表 public class parameter public string name get set public string paramtype get set public string source get s
  • 覆盖类路径中的默认 hadoop jar

    我已经看到了许多使用用户类路径作为 hadoop 的先例的方法的表现形式 通常情况下 如果 m r 作业需要特定版本的库 而 hadoop 恰好已经使用旧版本的库 例如 jackson 的 json 解析器或 commons http 等
  • 进行隧道事件的正确方法

    EDIT 我想我问了一些 XY 问题 我并不真正关心隧道事件的运行 我关心的是事件的发生从父窗口后面的代码引发由该窗口子级的控件拾取并做出反应 而无需明确告诉子级其父级是谁并手动订阅该事件 我试图在父控件中引发一个事件 并让子控件侦听该事件
  • 4点透视变换失败

    我一直在尝试进行 4 点透视变换 以便开始进行一些 OCR 操作 从下图开始我可以检测到车牌号 并将其裁剪出来 绿色框是边界框 红点是我想要正方形的矩形的角 这是变换的输出 乍一看 它似乎已经完成了由内而外的变换 将零件放在两侧而不是点之间
  • 如何使用 matplotlib 或 graphviz 在 networkx 中绘制多重图

    当我将多图 numpy 邻接矩阵传递给 networkx 时 使用 from numpy matrix 函数 然后尝试使用 matplotlib 绘制图形 它会忽略多条边 我怎样才能让它绘制多条边 Graphviz 在绘制平行边方面做得很好
  • 将附加 JPanel 添加到 JPanel

    伙计们 这是一个相当基本的问题 基本上我有这样的代码 public SuperPanel setLayout new BorderLayout add panel1 BorderLayout NORTH add panel2 BorderL
  • 文本小部件内的 Tkinter 检查按钮和滚动

    使用中找到的代码这个 stackoverflow 帖子 https stackoverflow com questions 5860675 variable size list of checkboxes in standard tkint
  • 是否可以刷新视图中的ViewBag值?

    我正在尝试做一个动态下拉列表 我从数据库中获取下拉列表的选项并将它们放入对象列表中 根据复选框值 我从列表中删除对象并将该列表设置为 ViewBag 值 public ActionResult ThematicManagement stri
  • 使用 >450K 实例训练 Dlib 对象检测

    dlib 是否能够使用大规模数据集来训练目标检测器 我有超过 450K 的面部图像来训练面部检测器 是否可以使用 Dlib 或者我需要转向另一个替代方案 您可以使用多少数据取决于您的计算机中有多少 RAM 因此 也许您可 以根据每个图像的大
  • Mongodb,$sum 有条件

    文件 name abc length 25 area 10 name abc length 5 聚合查询后的输出 count 2 summarizedLength 30 summarizedArea null id name abc The
  • 字典更新序列元素#0的长度为3; 2 为必填项

    我想向对象添加线条account bank statement line通过其他对象但我收到以下错误 字典更新序列元素 0 的长度为 3 需要 2 这是我的代码 def action account line create self cr
  • System.TypeLoadException Microsoft.VisualBasic ASP.NET Core 2

    Microsoft VisualBasic 程序集与 ASP NET Core2 不兼容吗 我有一个 C 类库 它提供了一种读取 CSV 文件的方法 我选择使用 Microsoft VisualBasic FileIO TextFieldP
  • 如何在另一个微调器打开时一键打开一个微调器

    我有几个spinners在表格上 当我单击其中任何一个时 它会打开并显示选项 当我点击其他任何一个spinner它关闭了打开的spinner但随后我需要再次单击所需的spinner以便打开它 我想捕获第二个微调器的第一次单击 以便我可以关闭
  • 用于查找不属于超链接的文本的正则表达式

    我试图找到一个可用于解析 HTML 块以查找某些特定文本的单个正则表达式 但前提是该文本不是现有超链接的一部分 我想把非链接变成链接 这很容易 但是用单个表达式识别非链接似乎比较麻烦 在以下示例中 This problem is a res
  • 使用 --code-coverage 运行时,Mockery 失败并显示“无法加载模拟...类已存在”

    我正在尝试模拟 phpunit 的类 Php 单元失败并出现错误Could not load mock class already exists 这是我正在运行的唯一测试 因此该类不可能已经被模拟 任何建议将不胜感激 这是错误情况 name
  • Win32 C++ 控制台清屏而不闪烁

    我见过一些主机游戏 屏幕会自行刷新 清除 而不会出现烦人的闪烁 我已经尝试了很多解决方案 这是我目前得到的 while true if screenChanged if something needs to be drawn on new
  • intel oneAPI 基础安装中 ifort 的调用过程是怎样的?

    我正在尝试使用 intel 的数学内核库及其 fortran 编译器 该编译器内置于 oneAPI 基础套件中 然而 命令 ifort 不起作用 因为终端抱怨系统中找不到它 我已经使用命令 source intel oneapi setva
  • fit() 按预期工作,但在评估()期间模型偶然执行

    我注意到一个问题 在评估 期间 我没有看到基于fit 结果的预期结果 我在网上发现了很多讨论 人们都有类似的问题 例如 this https github com keras team keras issues 6977开放问题讨论了 dr
  • C# 中的范围划分

    将范围值分组 例如范围在 0 到 100 之间 我有四个组 A B C D 如果我想将范围分为四组 喜欢 0 25D组 C组26 50 51 75 B组 A组76 100 如何使用 C 进行此类分组 并将范围保存在列表中 那么如何判断某个数