我正在使用singleWhere
来检查该项目是否已经在flutter的列表内,但是我无法在逻辑内访问该项目,这是我的代码:
if ((invoiceAdditionsList.singleWhere((it) => it.realID == invoiceAdditionInstance.realID,
orElse: () => null)) !=
null) {
print('Already exists! $it');
} else {
print('not there');
}
在print('Already exists! $it');
行中是错误,无法在此处访问。 最佳答案
您可以获取项目,并根据结果进行存储。由于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
}
关于android - 如何使用singleWhere .. flutter访问列表内的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63230422/