gpt4 book ai didi

dart - 如何在 Dart 中比较两个列表是否相等并包含相同的对象?

转载 作者:行者123 更新时间:2023-12-04 14:59:25 39 4
gpt4 key购买 nike

我有两个 list :

List fruits = ['apples', 'bananas'];
List foods = ['apples', 'bananas'];

如何比较水果和食物并确保两个列表中的对象相同且顺序相同?

最佳答案

比较列表的相等性(而不是同一性)的推荐方法是使用以下包中的 Equality 类

import 'package:collection/equality.dart';

例如。,

Function eq = const ListEquality().equals;
print(eq(fruits, foods)); // => true

这适用于您的情况,因为 fruitsfoods包含相应的参数,即 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 deepEq = const DeepCollectionEquality.unordered().equals;

详情见 package API documentation .像往常一样,要使用这样的包,您必须在 pubspec.yaml 中列出它。 :
dependencies:
collection: any

关于dart - 如何在 Dart 中比较两个列表是否相等并包含相同的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713572/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com