2012-04-11 22 views
0

有没有办法在查询中将一个linq查询运行到预定义或自定义类中,而无需在外执行额外的操作?Linq into object

class Numbers { 
    int number 
    bool even 
} 

...populate numbers class 

List<Numbers> bigNumbers = (
    from n in numbers 
    where n.number >= 1000000 
    select n) 

以下引发转换错误。

+1

你能发布完整的异常消息吗? – nemesv 2012-04-11 20:57:04

+1

'numbers'应该是'Numbers'的一个实例吗?如果是这样,那么你得到的转换错误可能是由于它不是一个集合类型实现'IEnumerable ' – 2012-04-11 20:57:37

+1

错误是List尝试IEnumerable = – 2012-04-11 20:57:40

回答

5

你缺少一个ToList()

List<Numbers> bigNumbers = (
    from n in numbers 
    where n.number >= 1000000 
    select n).ToList(); 
+0

这是谢谢 – JBone 2012-04-11 21:00:23

0

你需要调用ToList,如果你真的想在列表中。

List<Numbers> bigNumbers = (
    from n in numbers 
    where n.number >= 1000000 
    select n) 
    .ToList(); 
1

是这样的吗?

List<Numbers> bigNumbers = numbers.Where(w => w.number >= 1000000).ToList(); 
+1

之一.Select(s => s)是不必要的,因为它是身份转换 – nothrow 2012-04-11 21:10:08

+0

您确实是正确的先生。编辑它。 – richk 2012-04-11 22:22:42

0

你就近了。您创建了一个Linq查询,但您试图将查询分配给List<Numbers>变量。最后需要添加.ToList()

List<Numbers> bigNumbers = (
    from n in numbers 
    where n.number >= 1000000 
    select n).ToList();