This question already has answers here:
Sort a list of objects in Flutter (Dart) by property value

(9个答案)


去年关闭。




我需要在Flutter中对一个列表进行排序,这是一个对象列表,我有一个模型,并且该模型具有名为isFeatured的属性,我需要将isFeatured为true的所有元素都放在List的第一位置。

我的意思是我可能会喜欢:
[
    {
        id: 1,
        name: 'Test',
        isFeatured: false,
    },
    {
        id: 2,
        name: 'Test 3',
        isFeatured: true,
    },
    {
        id: 3,
        name: 'Test 5',
        isFeatured: false,
    },
    {
        id: 4,
        name: 'Test 34',
        isFeatured: true,
    }
]

isFeatured为true的元素应该在第一位置。

最佳答案

您可以将排序方法与自定义比较器一起用于 bool(boolean)

myList.sort((a, b) => (a.isFeature ? 1 : 0) - (b.isFeature ? 1 : 0));

10-08 16:39