回答
嘗試:
string csv = string.Join(",", list.Select(p => p.Email).ToArray());
List<Person> persons = new List<Person>();
persons.Add(new Person { FirstName = "saurabh", LastName = "sharma" });
persons.Add(new Person { FirstName = "sandeep", LastName = "singh" });
persons.Add(new Person { FirstName = "Ivan", LastName = "gupta" });
Response.Write(string.Join(",", (from p in persons select p.FirstName).ToArray()));
如果列表中的任何人字段包含',',這是行不通的。 – 2011-04-22 20:04:02
這是一個約束沒有名稱包含','或電子郵件字段','。如果它包含,那麼它會按照像saurabh,sandee,p,Ivan這樣的值加入。所以道德是你的數據是腐敗的。因此,如果你知道你的約束,那麼要麼採取簡單的方法。在添加列表時,你可以刪除(等)字符。 – TechGiant 2011-04-22 20:09:54
使用LINQ to CSV非常容易。看看鏈接。
所有你需要做的就是發生在Person
類中的一些屬性,你將能夠同時讀取/寫入從/輕鬆.csv文件:)
下面是一個例子:
var emails =
from p in people
select new { p.Email };
cc.Write(emails, @"C:\emails.csv", outputFileDescription)
其中outputFileDescription
之前聲明(看看例子)。
使用一些美味的LINQ:
string csv = string.Join(",", people.Select(p => p.Email));
你有正確的想法,但語法錯誤。 – jason 2011-04-22 20:04:58
謝謝,修正了語法。 – 2011-04-22 20:05:26
'string.Join(delimiter,string [])',你有它們向後。你需要在你的Select()之後使用.ToArray(),因爲它期望一個字符串[]不是Enumerable
- 1. 逗號分隔值列出
- 2. 逗號分隔C
- 3. 兩個逗號分隔列出陣列
- 4. 以逗號分隔的花車在C++
- 5. 以逗號分隔的data.frame的列名
- 6. PHP MYSQL - 搜索逗號,逗號分隔列表分隔列表
- 7. 以逗號分隔的分隔值
- 8. 正則表達式從逗號分隔號分隔的列表
- 9. 逗號分隔的列表
- 10. 用逗號分隔的列
- 11. 從$ FT_USER逗號分隔的列表
- 12. Oracle查詢輸出以逗號分隔
- 13. 在T-SQL中輸出一個以逗號分隔的列表
- 14. 列出逗號分隔的名稱,不帶逗號
- 15. 轉換被逗號分隔值,以逗號分隔字符串
- 16. 陣列以逗號分隔字符串
- 17. 追加數以逗號分隔列表
- 18. DB2逗號分隔輸出
- 19. C++逗號分隔/ getline
- 20. Javascript以逗號分隔
- 21. 以逗號分隔數據
- 22. 從逗號分隔的數據文件中讀取列C++
- 23. 逗號分隔列表
- 24. @synthesize逗號分隔列表
- 25. 從逗號分隔列在MySQL
- 26. 逗號分隔
- 27. 逗號分隔
- 28. 逗號分隔
- 29. 逗號分隔
- 30. 在python中用逗號分隔逗號分隔的csv文件
這將工作,直到你遇到一個逗號的電子郵件地址。不要笑。電子郵件地址的語法不僅僅是「郵箱@域」風格的電子郵件地址。 – 2011-04-22 20:57:51
@Nicholas,這將違反RFC是有一個逗號,沒有引用。所以,如果這只是一個電子郵件地址,而不是一個複合地址,包括顯示名稱,那麼它不會是一個問題。 – 2011-04-22 22:32:09
根據RFC,這是一個有效的電子郵件地址'John Smith(Acme,Inc.)<[email protected]>'。同上「,史密斯,約翰」<[email protected]>'。雙引號可能會在錯誤的地方打破CSV解析器。合法的電子郵件地址不僅僅包含簡單的地址,如'mailbox @ domain'。 – 2011-04-22 22:45:40