Lambda表达式如何将列表组合成字符串?

11

这是我的表格,

myTable
-------------
id      name       age
-------------------------
1     NameOne       10
2     NameTwo       11
3     NameThree     12
4     NameFour      13  
5     NameFive      14

我检索我的表喜欢,

var _myList = DBContext.myTables.ToList();

我想要获得字符串的赞

"NameOne,NameTwo,NameThree,NameFour,NameFive"

有什么方法可以更简便地做到这件事吗?

3个回答

32

使用 String.Join

string names = String.Join(",", _myList.Select(x => x.Name));

你甚至可以避免从数据库加载其他列:

string names = String.Join(",", DBContext.myTables.Select(x => x.Name));

10

听起来你想要:

string names = string.Join(",", DBContext.myTable.Select(x => x.Name));

您无需经过一个中间列表 - 实际上不这样做更为高效。使用此查询,将从数据库中提取名称。


我敢不敢纠正一个小错误(我是Jon的大粉丝):),你需要将它转换为数组,因为string.Join需要一个字符串数组。 - bazz
@bazz,实际上有一个接受IEnumerable重载 - Andrei
1
@bazz:这取决于您使用的.NET版本。在.NET 4中,重载列表得到了显著扩展。 - Jon Skeet
@Andrei 真的吗?你能给我一些参考资料吗?MSDN - bazz
@bazz:看一下你指向的文档——屏幕左侧有一个重载列表... - Jon Skeet

0
var _myList = DBContext.myTables.ToList();
var names = _myList.Select(x => x.name);
var formattedStrings = string.Join(", ", names);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接