2012-12-18 173 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已經回答