将Linq查询结果返回到List对象(基于条件)

时间:2013-01-03 20:00:09

标签: linq

我需要根据外键值将一些Linq查询结果返回到List对象中。这样做的语法是什么?我是使用Linq的新手,所以下面是我迄今为止最好的猜测。我在.Where()“子句”中收到错误,指出“当前上下文中不存在名称'pt'。任何帮助都将不胜感激!

        List<AgentProductTraining> productTraining = new List<AgentProductTraining>();

        var prodCodes = productTraining.Select(pt => new[]
                                                         {
                                                             pt.ProductCode,
                                                             pt.NoteId,
                                                             pt.ControlId
                                                         })
                                                         .Where(pt.CourseCode == course.CourseCode);

1 个答案:

答案 0 :(得分:1)

您需要切换位置,并选择是否使用扩展方法:

var prodCodes = productTraining.Where(pt => pt.CourseCode == course.CourseCode)
                               .Select(pt => new SomeRandomType
                                                         {
                                                             ProductCode = pt.ProductCode,
                                                             NoteId = pt.NoteId,
                                                             ControlId = pt.ControlId
                                                         });

正如您在上面所看到的,我还建议您为该select语句创建一个类型,这样您就不会依赖匿名类型。你应该放入一个你知道一切的对象类型。

另外,如果CourseCode是一个字符串,那应该是pt.CourseCode.Equals(course.CourseCode)