分组后的linq投影中的智能感知

时间:2011-07-22 14:46:24

标签: linq group-by linq-to-objects projection

我有Collection<IStatements> statements

public interface IStatements
{
    IDocuments Documents { get; set; }
    string StatementDate { get; set; }
} 
public class Documents : IDocuments
{
    public string Date { get; set; }
    public string Url { get; set; }
}

我想在StatementDate上执行一个组,然后进行投影。 如果该组有多于一个语句进行预测,那么我想将他们的语句日期归为1.问题是我在groupby之后没有得到Intellisense

 var monthlyStatements = from mStatement in statements
             orderby mStatement.StatementDate descending
             group mStatement by mStatement.StatementDate;

我尝试过以下代码

var monthlyStatements = from mStatement in statements
           orderby mStatement.StatementDate descending
           group mStatement by mStatement.StatementDate
                   into msStatement
                         select new 
                                  {
                                   StatementDate = 
                                    mStatement.Documents.Date.,//no Intellisense 
                                  };

1 个答案:

答案 0 :(得分:0)

msStatement将成为IStatements分组,而不是 IStatements。所以你可以用它做两件事:

  • 获取Key属性(将是对帐单日期)
  • 获取该组的内容(每个都是IStatements

但是,您尝试使用多个IStatements进行的操作并不是很清楚。

你没有dStatementDate的原因是因为你正在使用查询延续;唯一剩下的就是分组。幸运的是,这里无关紧要,因为你可以从密钥中获取声明日期;你可以完全删除你的“let”子句。