Вы можете получить предмет и сохранить его в соответствии с результатом. Поскольку singleWhere()
выдает единственный существующий элемент, иначе выдается ошибка. Сделайте что-нибудь вроде этого и дайте мне знать, сработает ли это
var item = invoiceAdditionsList.singleWhere((it) => it.realID == invoiceAdditionInstance.realID, orElse: () => null);
// and later check that element out
print("Element found $item" ?? "Not there")
Если вас беспокоит получение первого найденного элемента только из списка, вы можете рассмотреть возможность использования firstWhere () , cos singleWhere()
выдает ошибку при обнаружении дубликатов или отсутствия элементов. Тот же код, просто firstWhere()
var item = invoiceAdditionsList.firstWhere((it) => it.realID == invoiceAdditionInstance.realID, orElse: () => null);
print("Element found: $item" ?? "Not there");
Это просто фиктивный код для вас, чтобы лучше понять его, используя singleWhere()
void main() {
List testIndex = [1,3,4,5,6,78,80];
var item = testIndex.singleWhere((it) => it == 120, orElse: () => null);
print(item ?? "No item found"); // No item found
}