首页 新闻 赞助 找找看

请教Linq查询一个小问题

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-23 21:42
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

求指导,谢谢!

happydaily的主页 happydaily | 菜鸟二级 | 园豆:301
提问于:2012-04-23 11:14
< >
分享
最佳答案
1
where s.Field<int>("phase") == wf.SecondLevel[i]

改为:

where  wf.SecondLevel[i].Contains(s.Field<int>("phase"))
收获园豆:10
artwl | 专家六级 |园豆:16736 | 2012-04-23 11:27
其他回答(2)
0

学习了,linq的知识忘记好多了

KivenRo | 园豆:1734 (小虾三级) | 2012-04-23 12:45
0

看不出来,你的linq语句与secondlevel到底有什么关系。

你的要求中就没提secondlevel什么事啊?不懂不懂。

中文代码 | 园豆:951 (小虾三级) | 2012-04-23 13:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册