2012-12-18 96 views
1

以下内容将选择对某个项目投票积极的用户名称,然后将其放入逗号分隔的字符串中。组合字段值(名称)

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循环。

+1

你就不能这样做'v.User.FirstName + “” + v.User.LastName'?顺便说一句,'== true'通常是要避免的。 – Ryan

回答

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类型的别名。

+0

好吧,无论如何你可以连接它们('string.Concat','string.Format'等) – horgh

+0

完美,谢谢! –

2

您可以在select语句中加入想要的值。

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

编辑:哎呀对不起,康斯坦丁Vasilcov已经回答