Linq Query Giving Error - PullRequest
       7

Linq Query Giving Error

1 голос
/ 24 марта 2010

Я получаю эту ошибку, когда использую выражение 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);

Ответы [ 4 ]

2 голосов
/ 24 марта 2010

может быть стоит поставить

using System.Linq;

в начале вашего файла cs.

Смотрите здесь для аналогичного случая .

1 голос
/ 24 марта 2010

Это должно быть проблемой в той части кода, которую вы нам не показываете. Этот код прекрасно компилируется с использованием .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);
    }
}
0 голосов
/ 30 марта 2010

Оказывается, в Windows phone 7 series есть ошибка, которая мешала мне посмотреть результаты.

0 голосов
/ 24 марта 2010

Возможно, _testModel относится к типу IEnumerable, а не IEnumerable(Of T). Не универсальный IEnumerable не имеет метода расширения Where.

.

Вы можете попробовать

var emp = _testModel.OfType<T>().Where(p => p.Date == DateTime.Now);

где T должен быть типом общего перечислимого, который вы хотите, в этом случае тип, которым вы хотите, чтобы p был.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...