【发布时间】:2015-05-16 14:34:50
【问题描述】:
我正在尝试打印并获取一行数字(2、4、8、16、32、),但使用 LINQ 表达式应该大于 10 但小于 1000。我不知道我做错了什么。
当我使用 from 时,我的 program.cs 中出现错误,它在 r 下划线。我不明白这个错误是什么意思。
program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3._4
{
class Program
{
static void Main(string[] args)
{
Reeks r = new Reeks();
var query =
from i in r// error is here
where i > 10 && i < 1000
select 2 * i;
foreach (int j in query)
{
Console.Write(j);
}
}
}
}
Reeks.cs:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3._4
{
class Reeks : IEnumerable
{
private int i = 1;
public Reeks() { }
public IEnumerator GetEnumerator()
{
while (true)
{
i = i * 2;
yield return i;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
【问题讨论】:
-
你需要在
Reeks以及非泛型版本中实现IEnumerable<int>。
标签: c# linq ienumerable