如何使用LINQ select从另一个对象填充类?

时间:2013-09-03 03:59:00

标签: c#

我有以下内容:

Question question = _questionsRepository.GetById(questionId);

我想做以下事情:

QuestionHeader questionDetail = _questionsRepository.GetById(questionId)
    .Select(m => new QuestionHeader { QuestionId = m.QuestionId })

但它给我一个错误说:

Models.Core.Question'不包含'Select'和no的定义 扩展方法'选择'接受类型'Models.Core.Question'的第一个参数 可以找到(你错过了使用指令或程序集引用吗?)

如何填充questionDetail?

3 个答案:

答案 0 :(得分:1)

您可能错过了System.Linq命名空间。

确保你有

using System.Linq;

位于源文件的顶部。

答案 1 :(得分:1)

你能不能这样做(假设你真的想要点击数据库)?

QuestionHeader questionDetail = new QuestionHeader()
{
    QuestionId = _questionsRepository.GetById(questionId).QuestionId
};

QuestionHeader questionDetail = new QuestionHeader() { QuestionId = questionId };

......或者如果您还需要这个问题:

Question question = _questionsRepository.GetById(questionId);
QuestionHeader questionDetail = new QuestionHeader() { QuestionId = questionId };

如果您有单个对象而不是集合,则不需要LINQ。

答案 2 :(得分:1)

如果您想致电Select,则必须传递IEnumerable<T>参数作为来源。由于您没有IEnumerable<T>,因此无法致电Select