从 Linq 筛选器创建列表
本文关键字:创建 列表 筛选 Linq | 更新日期: 2023-09-27 17:56:21
>我目前正在过滤掉由JSON数据填充的列表:
List<RootObject> FlightTimes = (List<RootObject>)GridView1.DataSource;
foreach (var v in from p in FlightTimes
where p.Direction == "A"
select new { p.Date, p.Time, p.SortTime, p.Direction, p.FlightNumber, p.Endpoint, p.Status, p.Status2 }) ;
我在尝试将数据从foreach获取到新列表中时遇到问题。有人可以帮忙吗?
问题是你的循环产生匿名类型的元素,所以你不能为它声明一个正确类型的列表。您可以通过不使用 foreach
并将查询结果发送到 ToList
来解决此问题:
var myList = (
from p in FlightTimes
where p.Direction == "A"
select new {
p.Date
, p.Time
, p.SortTime
, p.Direction
, p.FlightNumber
, p.Endpoint
, p.Status
, p.Status2
}
).ToList();
现在,编译器有足够的信息来捕获列表的类型,从而生成所需的结果。如果需要在循环中执行其他处理,请在单独的foreach
循环中使用myList
。
如果你只想获取一个Direction == "A"
对象的列表,你可以把它重构为这样:
var FlightTimes = ((List<RootObject>)GridView1.DataSource)
.Where(ft => ft.Direction == "A").ToList();