如何在颤振飞镖中使用 LINQ "where select into"语法



我有一个对象发布到我的api,这是我的请求类。

public class MyItem
{

public int CustomerId{ get; set; }
public string Desc{ get; set; }
public List<ReceiptDetailItem> receiptDetails{ get; set; }
}
public class ReceiptDetailItem
{
public int UnitId { get; set; }
public decimal Amount { get; set; }
}

我需要在OrderDetails中使用where子句,因为我只希望它的匹配细节被发布。

await generalService.POSTAPI(
url: "POSTMyItem",
body: {
"CustomerId": receipt[0]['CUSTOMERID'].toString(),
"DESC": receipt[0]['DESC'].toString(),
"OrderDetails": receiptDetailItem
.where((element) =>
element["LOCALRECEIPTID"] ==
receipt[0]['LOCALRECEIPTID'])
.toSet()
.toList()
.map((e) => 
receiptDetails(
unitId: e["unitId"],
amount: e["amount"]
))
},
).then((value) async {...

基本上,我想使用在颤振中选择toList并在列表类型中创建我的receiptDetails,但它不起作用,返回<类型'Null'不是类型'int'的子类型>

我这样解决了我的问题:

await generalService.POSTAPI(
url: "POSTMyItem",
body: {
"CustomerId": receipt[0]['CUSTOMERID'].toString(),
"DESC": receipt[0]['DESC'].toString(),
"OrderDetails": receiptDetailItem
.where((element) =>
element["LOCALRECEIPTID"] ==
receipt[0]['LOCALRECEIPTID'])
.toList()
.map((e) => 
return {
unitId: e["unitId"].toString(),
amount: e["amount"].toString()
};
}).toList()
}).then((value) async {