using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestLinq
{
class Level
{
public Level(int i,string nm = "null")
{
id = i;
name = nm;
}
public int id;
public string name;
}
class Room
{
public Room(int levId,string nm)
{
name = nm;
lev = new Level(levId);
}
public Level lev;
public string name;
}
class Program
{
public static List<Room> rmList;
public static List<Level> levelList;
private static void initData()
{
rmList = new List<Room>();
rmList.Add(new Room(2, "m房间2"));
rmList.Add(new Room(1, "大房间1"));
rmList.Add(new Room(3, "房间3"));
rmList.Add(new Room(2, "小房间2"));
rmList.Add(new Room(2, "mini房间2"));
rmList.Add(new Room(3, "m房间3"));
rmList.Add(new Room(1,"房间1"));
levelList = new List<Level>();
levelList.Add(new Level(2,"a2"));
levelList.Add(new Level(6, "a6"));
levelList.Add(new Level(3,"a3"));
levelList.Add(new Level(4,"a4"));
levelList.Add(new Level(1, "a1"));
levelList.Add(new Level(5,"a5"));
}
static void Main(string[] args)
{
initData();
Dictionary<int,List<Room>> rmDic=rmList.GroupBy(p => p.lev.id).ToDictionary(p=>p.Key,p=>p.ToList());
Dictionary<int, Level> lvDic = levelList.ToDictionary(p => p.id);
int i = 0;
++i;
}
}
}
C# List<T> 转 Dictionary<Key,List<T>> 的LinQ语句