C# 如何在linq中使用GROUPBY
我有一个新闻转发器,显示两个字段,如C# 如何在linq中使用GROUPBY,c#,asp.net,linq,asp.net-3.5,C#,Asp.net,Linq,Asp.net 3.5,我有一个新闻转发器,显示两个字段,如news\u Text和news\u Date var query = db.News .OrderBy(n => n.News_date) .GroupBy(n => n.News_date, n => n.News_text); foreach (var g in query) { foreach(var t in g) { DataRow dr =
news\u Text
和news\u Date
var query = db.News
.OrderBy(n => n.News_date)
.GroupBy(n => n.News_date, n => n.News_text);
foreach (var g in query)
{
foreach(var t in g)
{
DataRow dr = dt.NewRow();
dr["News_text"] = t.ToString();
dr["News_date"] = g.Key.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);
}
}
在这里,我只想通过groupbyNews\u date
显示这些数据
var query = db.News
.OrderBy(n => n.News_date)
.GroupBy(n => n.News_date, n => n.News_text);
foreach (var g in query)
{
foreach(var t in g)
{
DataRow dr = dt.NewRow();
dr["News_text"] = t.ToString();
dr["News_date"] = g.Key.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);
}
}
比如:
这是我的密码:
private void BindNewsRepeater()
{
using (DataClassesDataContext db = new DataClassesDataContext())
{
var query = from n in db.News
orderby n.News_date descending
select new
{
News_text = n.News_text,
News_date = n.News_date
};
DataSet myDataSet = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("News_text", typeof(string)));
dt.Columns.Add(new DataColumn("News_date", typeof(string)));
foreach (var item in query)
{
DataRow dr = dt.NewRow();
dr["News_text"] = item.News_text.ToString();
dr["News_date"] = item.News_date.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);
}
myDataSet.Tables.Add(dt);
rpt_news.DataSource = myDataSet;
rpt_news.DataBind();
}
}
我的中继器设计代码是:
<asp:Repeater ID="rpt_news" runat="server" onitemdatabound="rpt_news_ItemDataBound">
<ItemTemplate><asp:Label ID="lbl_news_date" runat="server"><%#Eval("News_date")%></asp:Label><br />
<asp:Label ID="lbl_news_text" runat="server"><%#Eval("News_text")%></asp:Label>
</ItemTemplate>
<SeparatorTemplate><br/><br/></SeparatorTemplate>
</asp:Repeater>
您只需按分组
新闻日期
,然后为新闻日期
的每个键选择一个新闻文本列表
。大概是这样的:
var results = News
.GroupBy(n => n.News_date)
.Select(g => new {
NewsDate = g.Key,
NewsTexts = g.Select(x => x.News_Text)
});
这将返回每个
NewsDate
的News\u文本列表
您是否已尝试先用谷歌搜索它?我相信您会发现很多例子。这里编译时错误发生在分号处,如错误106查询体必须以select子句或group子句结尾
var query = db.News
.OrderBy(n => n.News_date)
.GroupBy(n => n.News_date, n => n.News_text);
foreach (var g in query)
{
foreach(var t in g)
{
DataRow dr = dt.NewRow();
dr["News_text"] = t.ToString();
dr["News_date"] = g.Key.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);
}
}