IDictionary<int, IList<int>> secondlevel = new Dictionary<int, IList<int>>(); secondlevel.Add(1, new List<int>(new int[] { 1, 2 })); secondlevel.Add(2, new List<int>(new int[] { 3 })); secondlevel.Add(3, new List<int>(new int[] { 4, 5, 6 })); //ptime结构Bianhao,Phase,StartTime,EndTime,Days DataTable ptime = pm.GetPhaseTime(); for (int i = 1; i < 4; i++) { var query = from s in ptime.AsEnumerable() where s.Field<int>("phase") == wf.SecondLevel[i] //此处如何修改呢? select s.Field<DateTime>("starttime") ; } //整体意思就是当i=1时,返回ptime表中phase为1,2的starttime,当i=2时,返回ptime表中phase为3的starttime
求指导,谢谢!
where s.Field<int>("phase") == wf.SecondLevel[i]
改为:
where wf.SecondLevel[i].Contains(s.Field<int>("phase"))
学习了,linq的知识忘记好多了
看不出来,你的linq语句与secondlevel到底有什么关系。
你的要求中就没提secondlevel什么事啊?不懂不懂。