问题引入
var list =await GetDataList();
var temp = list.Where(x => x.AlarmStatus=="未处理");
第二句的where语法不起作用,怎么回事呢?
解决方案(加上ToList):
var temp = list.Where(x => x.AlarmStatus=="未处理").ToList();
解释:
1.Where 方法返回的是一个延迟执行的 IEnumerable<T>,而不是立即执行的列表,会被延迟到遍历时才应用,因此需要使用 .ToList() 或者类似的方法来强制执行查询,将结果存储在一个新的列表中。这样做可以确保筛选条件立即生效。
2..ToList()会使得代码执行时间更长,如果不需要展示整个列表,可以使用 .ToArray() 或 .ToDictionary() 方法代替。