リストに最大インデックスを取得するためのC#の組み込みメソッドはありますか?List <>の最大インデックスを取得する組み込みメソッドはありますか?
答えて
いいえ、組み込みメソッドはありません。あなたは常にリストについて
int maxIndex = myList.Count - 1;
を使用することができ、あなたは、要素が範囲0..Count-1になることが保証されているので、あなたは、拡張メソッドを作成することができますもちろんオフ
public static int LastIndex<T>(this List<T> list)
{
return list.Count-1;
}
をリストに0個の要素がある場合、これらの行は-1を返します。これは問題の可能性があります。
これは私が欲しくないことです。 -1を書かずにこれを実現するメソッドがあるかどうか疑問に思っていました。(私も拡張メソッドを書くこともできますが、そこにメソッドがありますか?) – pencilCake
@pencilCake:拡張メソッドを編集して含めました。 – SWeko
@pencilCake、SWekoは*メソッドが組み込まれていないと述べています。したがって、 "-1"を使用するか、拡張メソッドを作成してください。それらはあなたの選択です:) –
最大有効インデックスは常にサイズである - ので、1:
int maxIndex = list.Count - 1;
あなたは非常に読みやすいように、最後のインデックスで値を取得したい場合は、LINQを使用することができます
OBJEにLINQ - これはlist[list.Count - 1]
を用いとして
かなりとして効率的ではないであろうが、それは
がはO(N)操作されないこと
var item = list.Last();
注さまざまな場所で最適化され、IList<T>
を活用しています。
もしそうでなければ、それはO(1)であることを意味しますか? – pencilCake
'List'が空であれば' Last() 'を使うときに' InvalidOperationException'をスローします。 – eandersson
@pencilCakeいいえ、そうではありません。 O(log n) – clearpath
最大値のインデックスを意味する場合は、いいえ、存在しません。おそらく拡張メソッドを書くことができます:
これらは最小値と最大値です。
static class Tools {
public static int IndexOfMin<TSource>(this IEnumerable<TSource> source) where TSource : IComparable<TSource> {
int index = -1;
int i = -1;
TSource min = default(TSource);
foreach (var element in source) {
i++;
if (index == -1 || (min != null && min.CompareTo(element) > 0)) {
index = i;
min = element;
}
}
return index;
}
public static int IndexOfMax<TSource>(this IEnumerable<TSource> source) where TSource : IComparable<TSource> {
int index = -1;
int i = -1;
TSource max = default(TSource);
foreach (var element in source) {
i++;
if (index == -1 || (max == null && element != null) || max.CompareTo(element) < 0) {
index = i;
max = element;
}
}
return index;
}
}
これらの方法は、null
を最小値と見なします。 null
との比較は、コンパイラによってnullableではない型に対して無視されます。
- 1. 組み込みメソッドのシグネチャを取得する - Python
- 2. 読み取り専用ディクショナリ<int、List <int>>
- 3. Numpyには組み込み/簡易LDU分解メソッドがありますか?
- 4. パイソン:最大/最小の組み込み関数は
- 5. MVC組み込みシステムのGUIの例はありますか?
- 6. rxswift:Observableを取得する方法<Any> Observable <[Category]>の組み合わせになりますか?
- 7. MVC 4には組み込みのサイトマップソリューションがありますか?
- 8. Rustに組み込みのID関数はありますか?
- 9. Javaの組み込みデータベース/ファイルバックアップフレームワークはありますか?
- 10. Cでチャネージケースの組み込み関数はありますか?
- 11. Python辞書は、<0x03B22CF8のunicodeオブジェクトの組み込みメソッドreplace>
- 12. セットリーダーから読み込む組み込み関数はありますか?
- 13. 組み込みデータベースには、最大のSQLコンプライアンスと同時実行性のサポートがありますか?
- 14. 組み込み型には移動セマンティクスがありますか?
- 15. 組み込み関数 "none"はありますか?
- 16. List <>次の要素を取得するか最初に取得する
- 17. インライン/組み込みブートストラップdatepickerから値を取得する
- 18. 組み込み関数sumはsum(list、[])と何をするのですか?
- 19. golangにコマンドラインインタプリタ用の組み込みパッケージがありますか?
- 20. LISTの値を取得する<>
- 21. ラケットに組み込みプロシージャ "build-list"を構築する
- 22. 2つのオブジェクトのプロパティを1つのオブジェクトにマージする組み込みのメソッドはありますか?
- 23. Objective Cに組み込み関数がありますか?
- 24. 配列から最初の項目を削除する組み込み手段はありますか?
- 25. オブジェクトが組み込みデータ型であるかどうかをチェックする関数はありますか?
- 26. 組み込みの名前/値ペア属性はありますか?
- 27. twig組み込みvs組み込み、使用する理由がある
- 28. dictが組み込みテストよりも速く組み込みをテストするのはなぜですか?
- 29. リストの中にインデックスを組み合わせる方法はありますか
- 30. django.contrib.auth(Djangoの組み込みログインシステム)からユーザー名を取得する方法は?
どういう意味ですか? –