首页 > 解决方案 > 如何将字符串列表转换为数字列表,然后在 C# 中对该列表应用 OrderByDescending

问题描述

将此视为列中的值Emp_code。E1000 E1001 E9000 E4000 E1339 E10000

我正在使用此代码首先从所有事件中删除 E,然后将它们转换为数字,而不是OrderByDescending应用于list.

var idd = db?.HRMS_EmpMst_TR?.Where(a => a.Emp_code != null)? 
.Select(x=>x.Emp_code.Remove(0,1)).Select(int.Parse).OrderByDescending(y => y).First();

有人可以帮我处理这段代码。我想得到10000作为答案。 谢谢您的帮助!

标签: c#asp.netasp.net-mvclinq

解决方案


你需要

  1. 用于TrimStart('E')从每个字符串中删除 E 字符并将其解析为整数。

  2. Max从已处理的序列中获取值。

var input = new List<string>(){"E1000", "E1001", "E9000", "E4000", "E1339"};
var result = input
      .Select(x => int.Parse(x.TrimStart('E'))) //Remove E and then parse string to integer  
      .Max(); //Get max value from an IEnumerable

在线尝试:.NET Fiddle


推荐阅读