LINQ при работе с массивами

325
30 июля 2017, 07:04

Ему не нравится, когда я присваиваю ему значения с массива, хотя peopls реализует массив IEnumreble.

var results = from p in peopls - здесь ошибка.

{
    class Program
    {
        static void Main(string[] args)
        {
            List<Person> peopls = new List<Person>();
            peopls.Add(new Person("Алексей", "Костылёв", 17));
            peopls.Add(new Person("Илья", "Костылёв", 13));
            peopls.Add(new Person("Andrei", "Костылёв", 42));
            var results = from p in peopls
                          where p.Age < 16
                          select new { p.FirstName, p.LastName, p.Age };
        }
    }
}
Answer 1

То что компилятор ругается на ошибку в строке:

var results = from p in peopls - здесь ошибка.

это нормально поскольку в документации написано, что:

Выражение запроса должно начинаться с предложения from и должно заканчиваться предложением select или group. Между первым выражением from и последним выражением select или group могут содержаться одно или несколько из следующих необязательных предложений: where, orderby, join, let. Вы также можете использовать ключевое слово into, чтобы включить результат предложения join или group в качестве источника для дополнительных предложений запроса в одном выражении запроса.

Как видно в вашем случае, не хватает в конце либо select или group.

Поэтому ваш код должен выглядеть так:

var results = from p in peopls group p by p.FirstName;

или так:

var results = from p in peopls select p.FirstName;
Answer 2

тип указывай после from, таков синтаксис

var results = from Person p in peopls
                      where p.Age < 16
                      select new { p.FirstName, p.LastName, p.Age };

а вообще юзай Entity Framework, юный падаван.

var result = people.Where(x => x.Age < 16); 
READ ALSO
Странный баг с коллизией

Странный баг с коллизией

Доброе утро, совсем недавно начал разрабатывать игру на c# + monogameПри разработке класса игрока заметил баг с коллизией

235
Как узнать значение в колонке с автоинкрементом?

Как узнать значение в колонке с автоинкрементом?

Есть DataTable dtВ нем создана колонка:

312
Проверка на пустой запрос - C#

Проверка на пустой запрос - C#

У меня есть ComboBox1 и ComboBox2Данные для ComboBox берутся из LocalDB и эти два элемента управления связанны

362
Разбить строку js

Разбить строку js

Всем привет

245