有一个通用的数字列表,比如说
{980,850,700,680} --- n nos。
我尝试将上面的列表与十进制数比较。比如690.,我需要的是O / p,以得到我要输入的数字的排名(“692”。我,所需的O / P应该是排名=“4”
如何获得上述情况的O / p .. ??
答案 0 :(得分:0)
如果要查找列表中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开始的位置。
答案 1 :(得分:0)
从Alex的帖子开始,我认为你正在寻找
var numbers = new List<int>() { 980, 850, 700, 680 };
var dec = new Decimal(692.0);
var temp = numbers.Count(x => x > dec) + 1;
这将返回您要找的位置
答案 2 :(得分: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
可能是多余的,但我认为您的样本数据只是偶然排序。