【问题标题】:Linq query printing curly braces '{' in resultLinq 查询在结果中打印大括号“{”
【发布时间】:2014-09-29 20:15:24
【问题描述】:

我需要使用 Linq 查询来查询多个列,据我所知,我需要使用大括号“{}”

我编写了以下查询,但由于某种奇怪的原因,它打印了语句中的左大括号和右大括号“{}”。

var q = db.table1.Where(n => n.user== USER).Select(n => new { n.Name, n.LastName }); 
            ViewBag.test = q;

在我看来

@foreach (var item in ViewBag.test)
{
    @item
}

输出:

{ Name = john, LastName=Smith}
{ Name = Mike, LastName=mojie}

为什么要打印花括号?!

【问题讨论】:

    标签: linq curly-braces


    【解决方案1】:

    因为这是ToString for an anonymous type 的默认实现。

    你可以试试:

    @(item.Name + " " + item.LastName)
    

    【讨论】:

    • 我试过了,它返回这个错误:'object' does not contain a definition for 'Name'
    • @ceci:我认为这是因为ViewBag 是动态的。如果您使用 dynamic 而不是 var 它可能会起作用。您也可以尝试实际声明一个类型并使用它而不是匿名类型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多