LINQ选择new返回ObjectMaterializer

时间:2016-05-18 17:02:46

标签: c# linq

我有一个如下所示的查询:

global.ConfigPosition = require('./config/position');

查询本身具有我需要的信息,每当我尝试使用变量“匹配”中的信息时,问题就会出现问题,例如,如果我使用消息框打印“MODODEFALLA”:

        var matches = (from das in dc.GetTable<datos_amef_secuencia>()
                          where das.ID_SUBETAPA == IDSubStage
                          group das by das.AMEF_MODO_FALLA into gamf
                             select new{ MODODEFALLA = gamf.Select(das => das.AMEF_MODO_FALLA),
                                         CONTEOMODODEFALLA = gamf.Count()}).ToList();

它返回如下内容:

        foreach( var element in matches)
        {
            MessageBox.Show(element.MODODEFALLA.ToString());
        }

我已经尝试了几种方法来打印查询结果,但有效的方法是方法。单,但它只返回列表中的1项,在某些情况下我有多个项目。

任何帮助都将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:1)

MODODEFALLA似乎是项目的集合 - 您不应该关心基础类型是什么,只要您可以遍历它或调用其他Linq方法就可以了。

一种选择是遍历集合而不是尝试在集合上调用ToString

    foreach( var element in matches)
    {
        foreach(var item in element.MODODEFALLA)
            MessageBox.Show(item.ToString());
    }

或使用string.Join将集合投影到单个字符串:

    foreach( var element in matches)
    {
        MessageBox.Show(string,Join("; ", element.MODODEFALLA));
    }