首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

asp.net mvc3环境上,用linq实现主题栏目分层显示

2012-07-30 
asp.net mvc3环境下,用linq实现主题栏目分层显示asp.net mvc3环境下,用linq实现主题栏目分层显示例有两个

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.分主题);            }        }            }} 

热点排行