我有一個要排序的串列。該串列包含多個帶有鍵和值的映射。基本上,它看起來像這樣:
class MyObject{
DateTime date;
String myText;
MyObject({required this.date, required this.myText});
}
void main()
{
MyObject obj1 = MyObject(date: DateTime.now(), myText: "abc");
MyObject obj2 = MyObject(date: DateTime.now(), myText: "bcd");
// just a demo, in reality there are more unordered dates
var myList = [{"obj": obj1 , "etc": "someEntry1"}, {"obj": obj2, "etc": "someEntry2"}];
}
我想根據地圖中的升序對串列進行排序,并嘗試使用以下代碼行對串列進行排序:
myList.sort((a, b) => a['obj'].date.compareTo(b['obj'].date));
但我最終得到以下錯誤:

如何解決排序問題?謝謝你的幫助!
uj5u.com熱心網友回復:
我無法復制完全相同的錯誤。但是你可以通過做一個小的調整來讓它排序,正如我認為你想要的那樣。
由于您的地圖混合了資料型別,因此您必須幫助 dart 知道鍵“obj”下的物件是 MyObject 型別。檢查我添加演員表的這個DartPad 。
這是我改變的:
myList.sort((a, b) => (a['obj']! as MyObject).date.compareTo((b['obj']! as MyObject).date));
請注意,您可能想做一些比假設它x['obj']不為空更安全的事情......
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/530394.html
標籤:安卓IOS扑镖
