【问题标题】:Get largest column name that come before a given column name in a list of Excel columns string获取 Excel 列字符串列表中给定列名之前的最大列名
【发布时间】:2016-04-25 04:06:48
【问题描述】:

请考虑以下列表:

var List1 = {};
var List2 = {"A"};
var List3 = {"AE"};
var List4 = {"A", "B", "F", "H", "AA", "AC", "AE"};

此列表是 Excel 列。现在我想查找给定列名之前的列名,例如,如果我想查找“N”之前的哪一列,我想从列表中获取此结果:

null // From List 1
"A"  // From List 2
null // From List 3
"H"  // From List 4

如何编写一个 LINQ 查询来为我返回此结果?

谢谢

【问题讨论】:

    标签: c# linq c#-4.0 lambda linq-to-entities


    【解决方案1】:

    假设列表是有序的,这是一种可能的方式:

    YourList.TakeWhile(o => ExcelToNumber(o) < ExcelToNumber("N"))
            .LastOrDefault();
    

    ExcelToNumber()是一种将excel列名转换为整数的方法,如this post中所述。为了便于参考,我在下面包含了方法定义,100% 归功于链接帖子的贡献者:

    int ExcelToNumber(string x) {
        return x.Aggregate(0, (s, c) => s * 26 + c - 'A' + 1);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-04-30
      • 2016-05-31
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      相关资源
      最近更新 更多