读书人

asp.net mvc3环境上用linq实现主题栏

发布时间: 2012-07-30 16:19:05 作者: rapoo

asp.net mvc3环境下,用linq实现主题栏目分层显示
asp.net mvc3环境下,用linq实现主题栏目分层显示
例有两个表了
a
id 主题 序列
1 第一 1
2 第二 2
3 第三 3

b
id 分主题 序列
1 小1 1
2 小2 1
3 小1 2
4 小2 2
5 小1 3

实现显示如下效果:

第一
小1
小2
第二
小1
小2
第三
小1





[解决办法]
可以使用分组联合

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    class ta    {        public int id { get; set; }        public string 主题 { get; set; }        public string 序列 { get; set; }    }    class tb    {        public int id { get; set; }        public string 分主题 { get; set; }        public string 序列 { get; set; }    }    class Program    {        static void Main(string[] args)        {            List<ta> la = new List<ta>()            {                new ta() { id = 1, 主题 = "第一", 序列 = "1" },                new ta() { id = 2, 主题 = "第二", 序列 = "2" },                new ta() { id = 3, 主题 = "第三", 序列 = "3" }            };            List<tb> lb = new List<tb>()            {                new tb() { id = 1, 分主题 = "小1", 序列 = "1" },                new tb() { id = 2, 分主题 = "小2", 序列 = "1" },                new tb() { id = 3, 分主题 = "小1", 序列 = "2" },                new tb() { id = 4, 分主题 = "小2", 序列 = "2" },                new tb() { id = 5, 分主题 = "小1", 序列 = "3" }            };            var result = from a in la                         join b in lb on a.序列 equals b.序列 into g                         select new { a.主题, items = g };            foreach (var item in result)            {                Console.WriteLine(item.主题);                foreach (var sitem in item.items)                    Console.WriteLine("\t" + sitem.分主题);            }        }            }} 

读书人网 >.NET

热点推荐