gpt4 book ai didi

c# - 修改 LINQ 输出 AnonymousType 无法赋值

转载 作者:太空狗 更新时间:2023-10-29 20:50:35 24 4
gpt4 key购买 nike

嗨,我有一个问题,我已经研究了好几个小时,但我一直收到错误

Property or indexer 'AnonymousType#1.XP' cannot be assigned to -- it is read only

问题出现在a.XP这里

    foreach (var a in comments)
{
a.XP = score.getLevel(a.XP);
}

正如评论指出的那样,我从不说我想做什么,我想用改进后的值 score.getLevel(a.XP) 代替 a.XP。

完整代码如下

protected void GetComments()
{
TimberManiacsDataContext db = new TimberManiacsDataContext();
Score score = new Score();
var comments = (from fComment in db.Comments
where fComment.PublishID == Convert.ToInt32(Request.QueryString["Article"])
orderby fComment.DateTime descending
select new
{
UserName = fComment.User.UserLogin.Username,
PostTime = fComment.DateTime,
UserImage = fComment.User.UserGeneralInfo.ProfilePicture,
Comment = fComment.Comment1,
UserID = fComment.UserID,
XP = fComment.User.CommunityScore
}).Take(10).ToList();

foreach (var a in comments)
{
a.XP = score.getLevel(a.XP);
}
Commentlist.DataSource = comments;
Commentlist.DataBind();
}

最佳答案

匿名类型的对象是只读的,但鉴于您的代码示例,几乎不需要在循环中尝试这种修改,只需将其作为查询执行的一部分即可。

XP = score.getLevel(fComment.User.CommunityScore)

如果您发现自己需要在查询执行后进行更改,那么您应该继续定义一个允许此类更改的类,然后选择该类而不是匿名类型。

class CommentData { ... } // define this type with your properties

// then use it for the query projection

select new CommentData
{
// ...
}

关于c# - 修改 LINQ 输出 AnonymousType 无法赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com