有號碼的泛型列表,說排名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