List 复杂排序

2024-04-06

我有一个List<string>尺寸,例如 XS、S、M、L、XL、XXL、UK 10、UK 12 等

我想要的是强制顺序为上面的顺序,无论列表中项目的顺序如何,我认为我需要一个 IComparable 运算符但不确定。

理想情况下,我想要另一个具有正确顺序的列表,它可以引用它在列表中的“位置”并重新排序,如果它不存在,它将默认为 A-Z


按照您希望的顺序创建一个尺寸数组,然后根据衬衫尺寸在该数组中的位置对衬衫进行排序:

string[] sizes = new [] {"XS", "S", "M", "L", "XL", "XXL", "UK 10", "UK 12"};

var shirtsInOrder = shirts
                        .OrderBy(s=>sizes.Contains(s) ? "0" : "1")  // put unmatched sizes at the end
                        .ThenBy(s=>Array.IndexOf(sizes,s))  // sort matches by size
                        .ThenBy(s=>s); // sort rest A-Z
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

List 复杂排序 的相关文章

随机推荐

  • 如何获取 HTML 完成的网络请求列表

    我如何使用 HTML 完成的 Javascript 获取网络请求列表 如 chrome devtools 中所示 For example 这是 google com 的开发工具 我想使用 javascript 将所有这些请求放在一个列表中
  • 复制普通可复制对象是否总是在 C++14 中定义?

    For a 可以简单地复制 http en cppreference com w cpp concept TriviallyCopyableT 型考虑 void f T z T a T b std memcpy b a sizeof T a
  • 在 ES6/ES2015 中是否有一种更简洁的方法将一个对象的属性映射到另一个对象?

    说我有一个对象foo有属性a and b但我想将这些属性的值传输到另一个对象bar有属性x and y where bar x得到的值foo a and bar y得到的值foo b 使用 ES5 实现此目的的第一个方法如下所示 var f
  • AlexNet 中的神经元数量

    In AlexNet http www cs toronto edu 7Efritz absps imagenet pdf 图像数据为3 224 224 第一个卷积层用96个大小的核对图像进行过滤11 11 3步幅为 4 像素 我对第一层的
  • React Native Android 位置请求超时

    在 IOS 中查找 GPS 坐标时没有问题 效果很好 Android 端不如 IOS 稳定 在真机和模拟器中都会出现这个问题 有时它可以找到位置 但有时却找不到 寻找了3天 但没有找到解决方案 当我的应用程序无法找到我的位置时 我尝试通过谷
  • 如何加快 Java / Android 中的解压时间?

    在 Android 上解压缩文件似乎非常慢 起初我以为这只是模拟器 但在手机上似乎是一样的 我尝试了不同的压缩级别 最终降到存储模式 但仍然需要很长时间 无论如何 总得有个理由吧 还有其他人有这个问题吗 我的解压方法如下所示 public
  • 如何在不引入竞争条件的情况下等待 RX 主体的响应?

    我有一项服务允许调用者异步发送命令和接收响应 在真实的应用程序中 这些操作是相当断开的 某些操作将发送命令 并且响应将被独立处理 但是 在我的测试中 我需要能够发送命令 然后等待 第一个 响应 然后再继续测试 响应是使用 RX 发布的 我对
  • Android 拖放问题不显示

    我正在开发一个拖放应用程序 一切正常 但我看到了一个问题 我有 3 个 ImageView 其中两个是可拖动对象 另一个是放置目标 每次我将物体扔到除放置目标之外的任何位置时 它都会完全消失 下面是我使用的代码 ImageView iv1
  • s3 临时签名 URL 中缺少对象的自定义 404 页面

    我正在为 Amazon S3 中的一些私人信息生成一些签名 URL 如果签名链接已过期或对象不存在 则会报告 XML 错误以及 404 错误 或 403 禁止 是否可以将签名链接 404 重定向到自定义错误页面 这似乎与 S3 静态网站设置
  • VS2010没有断点时调试器停止

    我最近更改了调试器中的一个选项 我认为这就是导致此问题的原因 但我似乎无法 撤消 它 我谷歌 所有命中都返回相反的 为什么调试器 not在断点处停止 无论如何 有人可以透露一些信息吗 编辑 当我在调试模式下按 f5 时 每次 它进入 Pro
  • Logstash创建管道但未创建索引

    我正在尝试使用 json 文件在 elasticsearch 云上创建索引 我已经创建了如下所示的配置 input file path gt root leads json start position gt beginning ignor
  • 在WPF中画一个十字

    我有一个 WPF 控件 I need to have in background a cross like this After that I d be able to add other controls over my crossed
  • 对数组元素(带有数字的字符串)进行排序,自然排序

    我有一个像这样的数组 IL0 Foo PI0 Bar IL10 Baz IL3 Bob says hello 并且需要对其进行排序 使其看起来像 IL0 Foo IL3 Bob says hello IL10 Baz PI0 Bar 我尝试
  • PHP 循环动态变量

    我正在尝试创建一个动态变量 我有一个循环 我希望它循环记录并为每个记录创建一个变量 我的代码 ct 1 foreach record as rec var ct rec Name ct ct 1 echo var1 当我尝试使用上面的代码时
  • 将 ToolBar 添加到 UITableView 的正确方法是什么?

    我正在编写一个基于导航的 iPhone 应用程序 我希望将 UIToolBar 停靠在屏幕底部 并在工具栏和导航栏之间滚动 UITableView 我见过几个论坛 其中有人建议处理此视图的视图控制器应该是标准 UIViewControlle
  • 车道检测器分隔线 C ++ 与 OpenCV

    现在我一直在用OpenCV进行图像分析 我想做的是识别车道分割线 我所做的如下 1 I receive a image 2 Then transform it to grayscale 3 I apply the GaussianBlur
  • 将 CodeMirror 与 Angular2 集成(打字稿)

    我目前正在致力于将 CodeMirror 编辑器添加到项目中 更准确地说是 Angular2 项目 但我做起来有困难 我的编辑器的实例化似乎无法正常工作 我的代码如下 编辑器 组件 ts import Component from angu
  • C++ 交换值的最有效方法

    我想知道在 C 中交换整数的最有效的操作方式是什么 为什么 是这样的 int a b a a b b a b a a b 比使用临时的更有效 还有其他更有效的方法吗 不只是要求其他方法来交换整数 以及为什么它们会更有效 赋值总是比进行算术运
  • 调整 UILabel 大小以适应自动换行

    这是 iPhone 应用程序的一部分 但通常应该适用于用 objC 编写的 Cocoa 我有一个 UILabel 保存各种数量的文本 从单个字符到几个句子 文本应始终以适合 UILabel 中所有文本的尽可能大的字体显示 最大行数设置为 4
  • List 复杂排序

    我有一个List