c# - 如何在linq中使用group by

标签 c# asp.net linq asp.net-3.5

我有一个新闻转发器,它显示两个字段,如 News_TextNews_Date

这里我只想按 News_date 分组显示这些数据。

喜欢:

12/24/2013
test
test1
test 2

11/12/213
blah..blah

这是我的代码:

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>

最佳答案

您可以简单地GroupBy News_date,然后为News_date 的每个键选择一个News_Text 列表。像这样:

var results = News
    .GroupBy(n => n.News_date)
    .Select(g => new {
        NewsDate = g.Key,
        NewsTexts = g.Select(x => x.News_Text)
    });

这将为每个 NewsDate 返回一个 News_Text 列表。

关于c# - 如何在linq中使用group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812854/

相关文章:

c# "=="运算符 : compiler behaviour with different structs

asp.net - 在 ASP.NET 应用程序中处理数据库查找值

javascript - runat=server 时如何设置隐藏字段的 value 属性

c# - 坚持 linq 查询

c# - 如何使用 C# 更快地将 400 万条记录从 Oracle 插入到 Elasticsearch 表中?

c# - .NET 4.8 中的异步等待递归导致 StackoverflowException(不在 .Net Core 3.1 中!)

visual-studio-2008 - 可枚举的 LINQ 扩展隐藏在字符串上......为什么以及如何?

c# - 检查字符串是否排序

c# - 怎么给桌面应用程序快捷方式添加图标

asp.net - 我如何将 CORS 用于 ASP.Net Core