0

数字の一般的なリストがあります、

{980、850、700、680}---n番号

上記のリストを小数番号と比較してみます。690と言います。必要なO/pは、入力する数値のランキングを取得することです( "692)。つまり、目的のO/PはRanking="4"である必要があります。

上記のシナリオのO/pを取得するにはどうすればよいですか。

4

3 に答える 3

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リストがすでに並べ替えられている場合は冗長になる可能性がありますが、サンプルデータは誤って並べ替えられただけだと思います。

于 2012-04-26T07:59:19.020 に答える
0

リストのintに対する10進入力の完全一致を検索する場合は、FindIndexを使用できます。

    var numbers = new List<int>() { 980, 850, 700, 680 };
    var dec = new Decimal(680.0);
    var res = numbers.FindIndex(x => x == dec);

一致の0ベースの位置を返します。

于 2012-04-26T07:29:48.400 に答える
0

アレックスの投稿に続いて、私はあなたが探していると思います

var numbers = new List<int>() { 980, 850, 700, 680 };
var dec = new Decimal(692.0);
var temp = numbers.Count(x => x > dec) + 1;

これにより、探している位置が返されます

于 2012-04-26T07:40:26.950 に答える