[解決済み] DartでListを等しく比較するにはどうしたらいいですか?
2022-09-25 02:46:28
質問
Dartで2つのリストを比較しているところです。
main() {
if ([1,2,3] == [1,2,3]) {
print("Equal");
} else {
print("Not equal");
}
}
しかし、それらは決して等しくはありません。Dart APIには、ListsやCollectionを比較するためのequal()メソッドがないようです。これを行うための適切な方法はありますか?
どのように解決するのですか?
Gunterの答えを完成させるために:(同一性ではなく)平等のためにリストを比較する推奨される方法は、次のパッケージからEqualityクラスを使用することです。
import 'package:collection/collection.dart';
編集
: 1.13 より前のバージョンでは
インポート 'package:collection/equality.dart' です。
例
Function eq = const ListEquality().equals;
print(eq([1,'two',3], [1,'two',3])); // => true
上記は
true
というのは、対応するリスト要素である
identical()
. 他のコレクションを含む可能性のあるリストを(深く)比較したい場合は、代わりに以下を使用します。
Function deepEq = const DeepCollectionEquality().equals;
List list1 = [1, ['a',[]], 3];
List list2 = [1, ['a',[]], 3];
print( eq(list1, list2)); // => false
print(deepEq(list1, list2)); // => true
他にも様々な方法で組み合わせることができる Equality クラスがあり、例えば
Map
s. を実行することもできます。
順不同
(深い)比較もできます。
Function unOrdDeepEq = const DeepCollectionEquality.unordered().equals;
List list3 = [3, [[],'a'], 1];
print(unOrdDeepEq(list2, list3)); // => true
詳細は
パッケージのAPIドキュメント
. 通常、このようなパッケージを使用するには、あなたの
pubspec.yaml
:
dependencies:
collection: any
関連
-
[解決済み] フラッターサークルデザイン
-
[解決済み] FlutterのBuildキャッシュをクリアする方法は?
-
[解決済み】Dartで日付をフォーマットする方法とは?
-
[解決済み】Flutterで数値入力フィールドを作成する方法は?
-
[解決済み] Dartで2つのリストを結合するには?
-
[解決済み] dartでenumにメソッドや値を追加する
-
[解決済み] InitStateメソッドで非同期データをロードする方法はありますか?
-
[解決済み] Flutter initState メソッドでコンテキストを取得する
-
[解決済み] Dartで "new "キーワードを使う必要があるのか?
-
[解決済み] Dart マルチプルコンストラクタ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] フラッターサークルデザイン
-
[解決済み] FlutterのBuildキャッシュをクリアする方法は?
-
[解決済み】Dartで日付をフォーマットする方法とは?
-
[解決済み】Flutterで数値入力フィールドを作成する方法は?
-
[解決済み] dartでenumにメソッドや値を追加する
-
[解決済み] Flutter SVG レンダリング
-
[解決済み] Flutter initState メソッドでコンテキストを取得する
-
[解決済み] TextFieldのBorder Colorを変更できない。
-
[解決済み] ローカルフラッターパッケージを別のフラッターアプリケーションで使用するには?
-
[解決済み] Dart マルチプルコンストラクタ