我目前正在过滤掉由JSON数据填充的List:
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中的数据放入新列表时遇到了麻烦。任何人都可以帮忙吗?
答案 0 :(得分:2)
问题是你的循环产生了匿名类型的元素,所以你不能为它声明一个正确类型的列表。您可以通过不使用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();
现在,编译器有足够的信息来捕获列表的类型,从而产生您期望的结果。如果您需要在循环中执行其他处理,请在单独的myList
循环中使用foreach
。
答案 1 :(得分:0)
如果您要做的只是获取Direction == "A"
对象的列表,您可以将其重构为:
var FlightTimes = ((List<RootObject>)GridView1.DataSource)
.Where(ft => ft.Direction == "A").ToList();