求个LINQ语句 大侠帮忙 十万火急
数据如下:public static List<JobsInfo> JobsDate()
{
List<JobsInfo> source = new List<JobsInfo>();
source.Add(new JobsInfo() { ID = 1, Name = "部门主任", Level = 1, });
source.Add(new JobsInfo() { ID = 2, Name = "财务科长", Level = 2, });
source.Add(new JobsInfo() { ID = 3, Name = "劳资科长", Level = 2, });
return source;
}
public static List<StaffInfo> StaffDate()
{
List<StaffInfo> source = new List<StaffInfo>();
source.Add(new StaffInfo() { Id = 1, Name = "李主任", JobsID = 1 });
source.Add(new StaffInfo() { Id = 2, Name = "李科长", JobsID = 2 });
source.Add(new StaffInfo() { Id = 3, Name = "刘科长", JobsID = 3 });
return source;
}
如下代码:
List<StaffInfo> ls=StaffDate().where(t=> t.JobsID=2).ToList();//这样会获得StaffDate()表中所有JobsID=2的所有数据,
现在要关联JobsDate()表中的数据 根据相同的Level来返回StaffDate()表中的数据
输出结果应该是
source.Add(new StaffInfo() { Id = 2, Name = "李科长", JobsID = 2 });
source.Add(new StaffInfo() { Id = 3, Name = "刘科长", JobsID = 3 });
这两条数据
因为他们两个关联的 JobsDate()中 Level是相等的.
各位大侠多贴些代码 小弟初学者 还请多多帮忙 --------------------编程问答-------------------- --------------------编程问答-------------------- where j.Level==2条件是不对的 j.level应该等于当前这条数据的level值
--------------------编程问答-------------------- 描述清楚些,你到底想要什么 --------------------编程问答-------------------- 就是要 取同级别不同职能的员工
用一个员工ID 取跟他同级别 不同职能的 员工列表 --------------------编程问答--------------------
--------------------编程问答-------------------- 大家快来看啊,还有使用LINQ的傻子来。 --------------------编程问答--------------------
var temp=JobsDate().Where(x=>
(from j in JobsDate()
join s in StaffDate()
on j.ID equals s.JobsID
where s.id==2 //某员工ID
select j.Level).Contains(x.Level)).Select(x=>x.ID);
// 取跟他同级别 不同职能的 员工列表
List<StaffInfo> ls=(from sf in StaffDate()
where temp.Contains(sf.Id)
select sf).ToList();
最近.NET版2 B 越来越多了 --------------------编程问答-------------------- 感谢大侠帮忙 我把业务拆开了 现在只剩最后一步 不知道怎么JOIN
int Level = JobsDate().Where(t => t.ID == 2).FirstOrDefault().Level;
List<JobsInfo> LJI = JobsDate().Where(t => t.Level == Level).ToList();
如何获得 职能列表 LJI 获得下面的员工列表
List<StaffInfo> ls=LJI.where(??????不会写 又很急 没时间仔细研究????????) 您老多帮忙吧
--------------------编程问答--------------------
var result =from u in StaffDate()
let n = LJI.select(c=>c.ID)
where n.Contains(u.ID)
select u; --------------------编程问答-------------------- 强类型的换成list
List<StaffInfo> result =(from u in StaffDate()
let n = LJI.select(c=>c.ID)
where n.Contains(u.ID)
select u).ToList(); --------------------编程问答-------------------- --------------------编程问答-------------------- var jobsSource = JobsDate();
var staffSource = StaffDate();
var resultQuery = staffSource.Join((jobsSource.Where(oj => jobsSource.Count(o => o.Level == oj.Level) > 1)), o => o.JobsID, i => i.ID, (o, i) => o);
foreach (var staffInfo in resultQuery)
{
Console.WriteLine("ID:"+staffInfo.Id.ToString()+"姓名:".PadLeft(10)+staffInfo.Name+"jobID:".PadLeft(10)+staffInfo.JobsID.ToString());
} --------------------编程问答-------------------- Here you go:
--------------------编程问答-------------------- 同意!!! --------------------编程问答-------------------- 看6楼回复 --------------------编程问答-------------------- List<StaffInfo> ls= (from j in JobsDate()
static List<StaffInfo> GetList(int level)
{
var n = from si in StaffDate()
join ji in JobsDate() on si.Id equals ji.ID
where ji.Level == level
select si;
return new List<StaffInfo>(n);
}
join s in StaffDate()
on j.ID equals s.JobsID
where j.Level==2
select s).ToList();
--------------------编程问答--------------------
猫的LINQ基础真给力. --------------------编程问答-------------------- 猫哥就是牛。 --------------------编程问答--------------------
版主发火了,呵呵 --------------------编程问答-------------------- 版主发火了,呵呵
补充:.NET技术 , LINQ