C# 对象初始值设定项中的匿名方法
我正在做一个小测验,在这个测验中我有以下几节课C# 对象初始值设定项中的匿名方法,c#,linq,lambda,anonymous-methods,C#,Linq,Lambda,Anonymous Methods,我正在做一个小测验,在这个测验中我有以下几节课 测验带有属性的更正选项,错误选项1,错误选项2,错误选项3 在其DTO中,我有列表选项,其中将包含所有错误和正确的选项 在检索实体时,我正在使用DTO的对象初始值设定项,但不知道如何分配列表选项 我记得我们是用匿名的方法来做的 select new QuestionDTO { Category = q.QuizCategory.Text
测验
带有属性的更正选项
,错误选项1
,错误选项2
,错误选项3
在其DTO
中,我有列表选项
,其中将包含所有错误和正确的选项
在检索实体时,我正在使用DTO的对象初始值设定项,但不知道如何分配列表选项
我记得我们是用匿名的方法来做的
select new QuestionDTO
{
Category = q.QuizCategory.Text
,
CorrectOption = q.CorrectOption
,
DifficultyLevel = q.DifficultyLevel.Text
,
Points = q.DifficultyLevel.Points.Value
,
RewardPCT = q.DifficultyLevel.RewardPCT.Value
,
Text = q.Text
,
TimerDuration = q.DifficultyLevel.TimerDuration.Value
,
Options = (qz) =>
{
List<string> ops = new List<string>();
ops.Add(q.CorrectOption);
ops.Add(q.WrongOption1);
ops.Add(q.WrongOption2);
ops.Add(q.WrongOption3);
return new List<string>().Shuffle();
}
};
选择新问题以
{
类别=q.QuizCategory.Text
,
CorrectOption=q.CorrectOption
,
难度等级=q.DifficultyLevel.Text
,
点=q.DifficultyLevel.Points.Value
,
RewardPCT=q.HardicultyLevel.RewardPCT.Value
,
Text=q.Text
,
TimerDuration=q.HardicultyLevel.TimerDuration.Value
,
选项=(qz)=>
{
列表操作=新列表();
增列(q.选项);
操作添加(问题1);
操作添加(问题2);
操作添加(问题3);
返回新列表().Shuffle();
}
};
但它给出了以下错误
无法将lambda表达式转换为类型“System.Collections.Generic.List”,因为它不是委托类型
更新
例如,我在原始实体类上创建了一个只读属性来完成这项工作。但是请告诉我更好的方法。
谢谢
更新2
但它不起作用:p在WCFTestClient.exe上说
LINQ to中不支持指定的类型成员“选项”
实体。仅初始值设定项、实体成员和实体导航
支持属性
遇到了类似的问题。我可以在查询中调用
ToList()
,然后单独查询selectnew{…}来解决这个问题。注意:你在用ops
做什么。看起来你填充它只是为了丢弃它。