Foreach Dynamic Linq多列

时间:2015-06-04 22:30:29

标签: c# linq dynamic-linq

您好我正在使用动态linq,我有这样的查询:

var result = DataContext.Table
    .Where("Code == @0", CodeId)
    .Select("new(SGL AS First, DBL AS Second)");

如何循环结果?

我正在使用类似此代码的内容,但它不起作用:

foreach (var item in result)
{
    total = subtotal + Int32.Parse(item.ToString()) * 2
}

它返回以下错误:

  

输入字符串的格式不正确。

2 个答案:

答案 0 :(得分:1)

问题出在你的foreach循环中,而不是动态linq。这一行:

total = subtotal + Int32.Parse(item.ToString()) * 2

是否要将对象转换为字符串,如下所示:

{First=XXX, Second=YYY}

如果您直接将其传递给Int32.Parse,您将收到您描述的错误。

相反,您希望处理对象的属性。一种方法是将对象转换为dynamic值,然后就像获取任何其他对象一样获取属性:

dynamic obj = resultItem;
total = subtotal + Int32.Parse(obj.First) * 2

答案 1 :(得分:0)

你应该尝试

mysqli_fetch_assoc