组合字段值(名称)

时间:2012-12-18 23:46:34

标签: c# linq entity-framework asp.net-mvc-4

以下内容将选择对某个项目进行肯定投票然后将其放在逗号分隔字符串中的用户的名称。

 var string = string.Join(", ", comment.CommentVote.Where(v=> v.Vote == true).Select(v => v.User.FirstName).ToArray());

我希望能够获得名字和姓氏,将它们放在一起,然后将它们列在逗号分隔列表中。

背景:我正在尝试创建类似于Facebook的东西:

 John Doe and 25 others like this

“25个其他人”在悬停时提供用户列表。我可以遍历投票的用户并获取名字和姓氏,连接它们,然后添加一个逗号,看起来应该有更简单的东西让我避免foreach循环。

2 个答案:

答案 0 :(得分:3)

只是连接它们:

var str = string.Join(", ", 
                      comment.CommentVote
                             .Where(v=> v.Vote)
                             .Select(v => v.User.LastName + " " + v.User.FirstName));

此外,您无需明确调用ToArray(),因为string.Join的重载已接受IEnumerable<T>。并且您不能拥有名为string的变量,因为它是类型System.String的别名。

答案 1 :(得分:2)

您可以在select语句中加入所需的值。

var results = string.Join(", ", comment.CommentVote.Where(v=> v.Vote)
              .Select(v => string.Format("{0} {1}", v.User.FirstName, v.User.LastName)));

编辑:对不起,Konstantin Vasilcov已经回答