配列の中身一つ受け取りそのデータが何番目に格納されているデータか?
タイトルでうまく伝えれないので説明します。
int []num={7,3,9,10,1,4};
例えばこの配列があったとして
ここで Max関数を使うと10が出てくるんですが
この出てきた10というデータを元に10が入れられていた要素番号を出すことは何らかの方法で可能なのでしょうか?
検索しようにも関連づいたものが出てこないのでここで質問させていただきました。
0
タイトルでうまく伝えれないので説明します。
int []num={7,3,9,10,1,4};
例えばこの配列があったとして
ここで Max関数を使うと10が出てくるんですが
この出てきた10というデータを元に10が入れられていた要素番号を出すことは何らかの方法で可能なのでしょうか?
検索しようにも関連づいたものが出てこないのでここで質問させていただきました。
TO: @dthy
今回の場合は、以下のように Select
と Max
を組み合わせることで Max の値と同時に index の値も取得が可能です。
var xs = new []{ 7, 3, 9, 10, 1, 4 };
var (max, index) = xs.Select( (x, i) => (x, i) ).Max();
System.Console.WriteLine($"max= { max }, index= { index }");
ただし Array.IndexOf
と同様に重複が発生している場合にすべての index を列挙することができないため、「重複なしである」or「最初/最後の要素の index だけ取得できれば良い」という前提が必要です。
@dthy
Questioner