dthy
@dthy (dorrrothy)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

配列の中身一つ受け取りそのデータが何番目に格納されているデータか?

タイトルでうまく伝えれないので説明します。

int []num={7,3,9,10,1,4};  
例えばこの配列があったとして

ここで Max関数を使うと10が出てくるんですが
この出てきた10というデータを元に10が入れられていた要素番号を出すことは何らかの方法で可能なのでしょうか?

検索しようにも関連づいたものが出てこないのでここで質問させていただきました。

0

1Answer

TO: @dthy

今回の場合は、以下のように SelectMax を組み合わせることで 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 だけ取得できれば良い」という前提が必要です。

1Like

Comments

  1. @dthy

    Questioner

    ありがとうございます!

Your answer might help someone💌