当我使用
的Linq表达式时,我收到此错误var emp = _testModel.Where(m => m.Date == DateTime.Now).Select(m=>m);
错误是
'System.Collections.Generic.IEnumerable<TestModel>' does not contain a definition for 'System' and no extension method 'System' accepting a first argument of type 'System.Collections.Generic.IEnumerable<TestModel>' could be found (are you missing a using directive or an assembly reference?).
我已经google'd并且到处寻找,我不知道它在说什么?它没有抛出异常。我发现这个问题的唯一方法是逐步完成表达。
导入的命名空间
using System;
using System.Collections;
using System.Linq;
using System.Collections.Generic;
尝试过类似的东西,它仍然给出了错误
string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
var shortDigits = digits.Where((digit, index) => digit.Length < index);
答案 0 :(得分:2)
答案 1 :(得分:1)
在您未向我们展示的部分代码中,这一定是个问题。这段代码使用.NET 3.5编译得很好:
using System;
using System.Collections;
using System.Linq;
using System.Collections.Generic;
class TestModel
{
public DateTime Date { get; set; }
}
class Test
{
public void TestFunction()
{
IEnumerable<TestModel> _testModel = new TestModel[] { new TestModel() };
var emp = _testModel.Where(m => m.Date == DateTime.Now).Select(m => m);
string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
var shortDigits = digits.Where((digit, index) => digit.Length < index);
}
}
答案 2 :(得分:0)
可能是_testModel
属于IEnumerable而非IEnumerable(Of T)
非通用IEnumerable
没有扩展方法Where
。
你可以尝试
var emp = _testModel.OfType<T>().Where(p => p.Date == DateTime.Now);
其中T
应该是您想要的通用枚举的类型,您希望p
的类型。
答案 3 :(得分:0)
原来Windows手机7系列中存在一个错误,它阻止我查看结果。