我有一个List<User>集合,我想使用User.Id属性创建一个逗号分隔的字符串,所以:
"12321,432434,123432452,1324234"
Run Code Online (Sandbox Code Playgroud)
我是用循环完成的,但希望有人能告诉我linq方式?
Jon*_*eet 102
在.NET 4中:
string joined = string.Join(",", list.Select(x => x.Id));
Run Code Online (Sandbox Code Playgroud)
在.NET 3.5中:
string joined = string.Join(",", list.Select(x => x.Id.ToString()).ToArray());
Run Code Online (Sandbox Code Playgroud)
区别在于.NET 4的重载列表string.Join比.NET 3.5中的重载列表更宽,而您真正想要的重载是"新" 重载之一:
public static string Join<T>(string separator, IEnumerable<T> values)
Run Code Online (Sandbox Code Playgroud)
您仍然可以在.NET 2.0中执行此操作,只使用List<T>特定方法而不是LINQ(我假设您仍然可以使用C#3):
string joined = string.Join(",", list.ConvertAll(x => x.Id.ToString())
.ToArray());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32712 次 |
| 最近记录: |