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
做什么。看起来你填充它只是为了丢弃它。