在列表中的一个单元格中按单元格中的每个字符进行排序

必须

我正在开发一个应用程序,其中有一个我自己定义的类型的C#列表,它具有约7列和几行数据。特别是我有一列Term字符串类型,通常包含字母数字项。

样本数据

Time      Product Term    Strike  Strategy  Premium  Volume
8:52:00     LN  F15-H15     350     PUT     0.106   100
8:33:29     LN  V14         400     CALL    0.033   100
9:42:51     LN  X14-J14     425     CALL    0.059   100
10:14:14    LN  X15-V15     325     PUT     0.1325  25
12:11:23    LN  H15 vs X14  450     CS      0.229   1000
12:12:03    LN  H15 vs X14  450     CS      0.229   550
12:12:58    LN  J14 vs F14  450     CS      0.229   100
12:13:33    LN  H15 vs X14  450     CS      0.229   100
12:14:20    LN  X14 vs H15  450     CS     0.229    100

从上面的列表中可以看到,我有一个名为Term的列,我试图在每个具有符号的单元格中进行排序,"-" (hyphen)"vs"在该单元格中进行排序,例如按数字和字母顺序对它们进行排序,例如在我拥有的Term Column的第三行中,X14-J14但是我想要要按字母顺序排序并使其J14-X14数字相同,但如果数字不同,则应通过赋予数字更高的优先级H15 vs X14来进行排序,就像应该优先排序,因为X14 vs H15较低的数字优先于字母。

结果数据将存储在列表中,并且应类似于

    Time      Product   Term       Strike  Strategy Premium  Volume
    8:52:00     LN  F15-H15         350     PUT     0.106   100
    8:33:29     LN  V14             400     CALL    0.033   100
    9:42:51     LN  J14-X14         425     CALL    0.059   100
    10:14:14    LN  V15-X15         325     PUT     0.1325  25
    12:11:23    LN  X14 vs H15      450     CS      0.229   1000
    12:12:03    LN  X14 vs H15      450     CS      0.229   550
    12:12:58    LN  F14 vs J14      450     CS      0.229   100
    12:13:33    LN  X14 vs H15      450     CS      0.229   100
    12:14:20    LN  X14 vs H15      450     CS      0.229   100

有什么好办法可以解决这个问题吗?

md4

没有一个很好的方法可以做到这一点。将会有字符串操作,其中有很多:

public string SortTerm(string term) {
    Match match = Regex.Match(term, @"([a-z]\d{2})(-| vs )([a-z]\d{2})", RegexOptions.IgnoreCase);

    if (match.Success) {
        string left = match.Groups[1].Value;
        string mid = match.Groups[2].Value;
        string right = match.Groups[3].Value;

        int a = int.Parse(left.Substring(1));
        int b = int.Parse(right.Substring(1));

        if (a > b || (a == b && left[0] > right[0]))
            return right + mid + left;
    }

    return term;
}

简而言之,如果term字符串与您描述的模式不匹配,请原样返回。否则,如果右侧小于左侧,则交换订单。

这将遵守分隔符字符串的类型(“-”或“ vs”)。

用法

您可以通过多种方式在集合上使用它。

如果您将对象存储在中List<T>

values.ForEach(val => val.Term = SortTerm(val.Term));

如果您有IEnumerable<T>

foreach (var value in values)
    value.Term = SortTerm(value.Term);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL选择单元格中每个单词的第一个字母

来自分类Dev

Matlab:查找单元格中第一个字符出现的索引

来自分类Dev

删除单元格中的第一个字符,并将其复制到Google表格中的相邻单元格中

来自分类Dev

在单元格中搜索字符列表

来自分类Dev

VBA-将字符串中的前三个字符复制到另一个单元格中

来自分类Dev

在MATLAB中,如何在单元格数组中每个字符串的开头插入一个字符串?

来自分类Dev

在VBA中,找到一个字符出现在一个单元格范围内单个单元格中的最大次数

来自分类Dev

如果单元格中的第一个字符为“-”,请更改整个行的颜色

来自分类Dev

将单元格条目粘贴到一个单元格中并删除空单元格

来自分类Dev

Excel:按范围中的单元格计数多个字符

来自分类Dev

清除一个单元格后在Excel中清除表格中的单元格

来自分类Dev

VBA:单元格值超过256个字符时,单元格功能中的TypeMismatch

来自分类Dev

在单元格中包含一个字符串

来自分类Dev

为datagridview中的每个单元格创建一个列表

来自分类Dev

为每个隐藏的单元格在该隐藏的单元格中的一个单元格中设置一个值

来自分类Dev

在Excel VBA中创建一个函数以测试单元格是否包含某个字符

来自分类Dev

对每个结果+格式将两个单元格排序并显示在一个单元格中

来自分类Dev

在Excel中将单元格中的每个字符更改为另一个

来自分类Dev

将一个单元格中的最后一个字符移动到另一个单元格的开头

来自分类Dev

如何自动在列中插入每个单元格的文本作为对另一个单元格的注释

来自分类Dev

更改单元格中第一个字符的字体-Excel,VBA

来自分类Dev

一个单元格数组中存在一个字符串多少次

来自分类Dev

如果一个单元格包含某个字符,请替换r中的整个单元格

来自分类Dev

MS Excel:删除第一个字符实例之前单元格中的数据

来自分类Dev

如何从上一个单元格更改excel中的一个字符

来自分类Dev

JavaScript / GoogleApps 查找表格中包含 28 个字符的每个单元格

来自分类Dev

公式excel从单元格中的第一个字符中查找数据

来自分类Dev

如何在每个下一个单元格中按 3-3 组拆分多个数字的单元格?

来自分类Dev

单元格中的箭头方向与 excel 中的另一个单元格

Related 相关文章

  1. 1

    MySQL选择单元格中每个单词的第一个字母

  2. 2

    Matlab:查找单元格中第一个字符出现的索引

  3. 3

    删除单元格中的第一个字符,并将其复制到Google表格中的相邻单元格中

  4. 4

    在单元格中搜索字符列表

  5. 5

    VBA-将字符串中的前三个字符复制到另一个单元格中

  6. 6

    在MATLAB中,如何在单元格数组中每个字符串的开头插入一个字符串?

  7. 7

    在VBA中,找到一个字符出现在一个单元格范围内单个单元格中的最大次数

  8. 8

    如果单元格中的第一个字符为“-”,请更改整个行的颜色

  9. 9

    将单元格条目粘贴到一个单元格中并删除空单元格

  10. 10

    Excel:按范围中的单元格计数多个字符

  11. 11

    清除一个单元格后在Excel中清除表格中的单元格

  12. 12

    VBA:单元格值超过256个字符时,单元格功能中的TypeMismatch

  13. 13

    在单元格中包含一个字符串

  14. 14

    为datagridview中的每个单元格创建一个列表

  15. 15

    为每个隐藏的单元格在该隐藏的单元格中的一个单元格中设置一个值

  16. 16

    在Excel VBA中创建一个函数以测试单元格是否包含某个字符

  17. 17

    对每个结果+格式将两个单元格排序并显示在一个单元格中

  18. 18

    在Excel中将单元格中的每个字符更改为另一个

  19. 19

    将一个单元格中的最后一个字符移动到另一个单元格的开头

  20. 20

    如何自动在列中插入每个单元格的文本作为对另一个单元格的注释

  21. 21

    更改单元格中第一个字符的字体-Excel,VBA

  22. 22

    一个单元格数组中存在一个字符串多少次

  23. 23

    如果一个单元格包含某个字符,请替换r中的整个单元格

  24. 24

    MS Excel:删除第一个字符实例之前单元格中的数据

  25. 25

    如何从上一个单元格更改excel中的一个字符

  26. 26

    JavaScript / GoogleApps 查找表格中包含 28 个字符的每个单元格

  27. 27

    公式excel从单元格中的第一个字符中查找数据

  28. 28

    如何在每个下一个单元格中按 3-3 组拆分多个数字的单元格?

  29. 29

    单元格中的箭头方向与 excel 中的另一个单元格

热门标签

归档