数字の一般的なリストがあります、
{980、850、700、680}---n番号
上記のリストを小数番号と比較してみます。690と言います。必要なO/pは、入力する数値のランキングを取得することです( "692)。つまり、目的のO/PはRanking="4"である必要があります。
上記のシナリオのO/pを取得するにはどうすればよいですか。
数字の一般的なリストがあります、
{980、850、700、680}---n番号
上記のリストを小数番号と比較してみます。690と言います。必要なO/pは、入力する数値のランキングを取得することです( "692)。つまり、目的のO/PはRanking="4"である必要があります。
上記のシナリオのO/pを取得するにはどうすればよいですか。
あなたの質問は明確ではありません、私はどのような役割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
リストがすでに並べ替えられている場合は冗長になる可能性がありますが、サンプルデータは誤って並べ替えられただけだと思います。
リストの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ベースの位置を返します。
アレックスの投稿に続いて、私はあなたが探していると思います
var numbers = new List<int>() { 980, 850, 700, 680 };
var dec = new Decimal(692.0);
var temp = numbers.Count(x => x > dec) + 1;
これにより、探している位置が返されます