有号码的泛型列表,说排名Linq中
{980,850700,680} ---ñ号。
我尝试将上面的列表与小数点号进行比较。说690,我需要的O/p是为了得到我要输入的数字的排名(“692)。我希望的O/P应该是排名=”4“
我可以得到上述方案中的O/p ??
有号码的泛型列表,说排名Linq中
{980,850700,680} ---ñ号。
我尝试将上面的列表与小数点号进行比较。说690,我需要的O/p是为了得到我要输入的数字的排名(“692)。我希望的O/P应该是排名=”4“
我可以得到上述方案中的O/p ??
如果你想寻找一个十进制输入到列表中的INT,你可以使用FindIndex完全匹配。
var numbers = new List<int>() { 980, 850, 700, 680 };
var dec = new Decimal(680.0);
var res = numbers.FindIndex(x => x == dec);
它返回匹配的基于0的位置。
你的问题的立场是不明确的,我不知道是690
玩什么角色。
假设用户可以输入一个数字,并且您希望在插入时找到列表中数字的排名(索引)。还假设,因为你按照它希望新int
的位置列表应降序排序值:
var input = 692;
var numbers = new List<int>() { 980, 850, 700, 680 };
var firstLower = numbers.OrderByDescending(i => i)
.Select((i, index) => new { Value = i, Index = index })
.FirstOrDefault(x => x.Value < input);
var rank = firstLower == null ? numbers.Count + 1 : firstLower.Index + 1;
请注意,如果您的列表已经排序的OrderByDescending
可能是多余的,但我认为你的样品数据只是意外排序。
680,690或692?现在怎么办?输入是否必须与列表的值相匹配? – Alex 2012-04-26 07:32:15
你能解释一下'690'扮演什么角色,特别是与'692'相比? – 2012-04-26 07:32:43