我在使用foreach构造中的var变量尝试循环查询对象时出现错误。我正在将xml加载到数据集中,并为显式原因对Linq执行数据集。请纠正我的错误。这是我的代码:使用var匿名对象获取LINQ的InvalidCastException
ds.ReadXml(fsReadXml);
DataTable myDataTable = ds.Tables[0];
var ordersQuery = myDataTable.AsEnumerable();
var subQuery = (from Geo03 in ordersQuery
select new
{
PARENTTYPE = Geo03.Field<String>("PARENTTYPE"),
PARENTINSTANCE = Geo03.Field<int>("PARENTINSTANCE"),
CHILDTYPE = Geo03.Field<String>("CHILDTYPE"),
CHILDINSTANCE = Geo03.Field<String>("CHILDINSTANCE"),
CHILDPOS = Convert.ToInt32(Geo03.Field<int>("CHILDPOS"))
});
XDocument doc = null;
foreach (var cin in subQuery)
{
}
这是产生错误:
System.InvalidCastException: Specified cast is not valid.
at System.Data.DataRowExtensions.UnboxT`1.ValueField(Object value)
at System.Data.DataRowExtensions.Field[T](DataRow row, String columnName)
at SpectraWorkon.Program.<Main>b__0(DataRow Geo03) in c:\users\arun\documents\visual studio 2010\Projects\SpectraWorkon\SpectraWorkon\Program.cs:line 29
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at SpectraWorkon.Program.Main(String[] args) in c:\users\arun\documents\visual studio 2010\Projects\SpectraWorkon\SpectraWorkon\Program.cs:line 38
我收到错误行foreach (var cin in subQuery)
,称这是无法施展。
+1快速和直接:) – TheBoyan 2011-12-21 00:05:57
@all,所以如何可以遍历我的查询?..我迷路了.. :( – user1061293 2011-12-21 06:48:15