Как получить более одного столбца в Linq - PullRequest
0 голосов
/ 09 апреля 2011

вот мой код:

firstAnswer = p.Answers.Select(z => z.vountcount, z.isSelected).FirstOrDefault()

В операторе выбора возвращается синтаксическая ошибка. Я пытаюсь получить более одного столбца.

Ответы [ 2 ]

3 голосов
/ 09 апреля 2011
var firstAnswer = p.Answers.FirstOrDefault().Select(new { VountCount = z.vountcount, IsSelected = z.isSelected });

Вы должны указать тип . Var - ключевое слово, позволяющее создать экземпляр анонимного типа .

1 голос
/ 09 апреля 2011

Вам потребуется либо создать тип, либо использовать анонимные типы для получения этого результата:

Анонимные типы:

var firstAnswer = p.Answers.Select(z => new { vountcount = z.vountcount, isSelected = z.isSelected }).FirstOrDefault();

Явное именование в большинстве случаев необязательно. Использование ключевого слова var гарантирует, что вы можете назначить анонимный результат. Если вы захотите передать этот результат какому-либо методу, вам будет сложно работать с анонимными типами.

Выделенный тип:

public class ReducedAnswer
{
    public int vountcount { get; set; }
    public bool isSelected { get; set; }

    public ReducedAnswer()
    {
    }
}

ReducedAnswer firstAnswer = p.Answers.Select(z => new ReducedAnswer { vountcount = z.vountcount, isSelected = z.isSelected }).FirstOrDefault();

Держите его близко к типичным классам моделей LINQ и вашим именам. Обратите внимание на использование типа перед firstAnswer. Вы можете пойти с var и здесь.

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