我有兩個來自 Firebase 的串列,List1 包含用戶的所有資訊及其 UID。List2 只包含一些用戶(不是全部)的 UID。
我想通過比較他們的 UID 來從 List1 中獲取 List2 用戶的所有詳細資訊
怎么做?
List1 包含: uid Name Email Age 等
List2 包含: uid(也在串列 1 中的用戶的 UID)
uj5u.com熱心網友回復:
@jamesdlin 解釋了邏輯,但我想用一個例子來說明這一點:
List list1 = [{'name': 'David', 'uid': '1', 'email': '[email protected]'},
{'name': 'Michael', 'uid': '2', 'email': '[email protected]'},
{'name': 'Sam', 'uid': '3', 'email': '[email protected]'},
{'name': 'Oguz', 'uid': '5', 'email': '[email protected]'},
{'name': 'Esmail', 'uid': '4', 'email': '[email protected]'}];
List list2 = ['1', '2', '3', '4'];
List list3 = [];
void main() {
//Loop through list 1
for(Map item in list1){
//Loop through list2 for every element in list1
for(String idUser in list2){
//If the id mathches add item from list1 to list3
if(idUser == item['uid']){
list3.add(item);
}
}
}
print(list3);
}
uj5u.com熱心網友回復:
我為此找到了解決方案。
我分別有兩個串列 List 和 List 。
下面的資料是 homeCtrlr.allUsers 表示所有用戶的完整串列,homeCtrlr.requests 表示用戶的所有 UID 串列。
final List<UserModel> userDetails = [];
for (var i = 0; i < homeCtrlr.requests!.length; i ) {
for (var j = i; j < homeCtrlr.allUsers!.length; j ) {
if (homeCtrlr.requests![i].requestBy ==
homeCtrlr.allUsers![j].uid) {
userDetails.add(homeCtrlr.allUsers![j]);
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/398301.html
上一篇:c#資料計數查詢
下一篇:從熊貓資料框創建嵌套串列
