如何转换List< >到一个逗号分隔的列表中,使用class's Id属性作为值

本文关键字:class 使用 Id 属性 列表 分隔 List 转换 何转换 一个 | 更新日期: 2023-09-27 18:10:03

我有一个List<User>集合,我想使用User创建一个逗号分隔的字符串。Id属性,因此:

"12321,432434,123432452,1324234"

我已经用一个循环做了,但希望有人能告诉我linq的方式?

如何转换List< >到一个逗号分隔的列表中,使用class's Id属性作为值

.NET 4:

string joined = string.Join(",", list.Select(x => x.Id));
在。net 3.5中:
string joined = string.Join(",", list.Select(x => x.Id.ToString()).ToArray());

不同之处在于。net 4的string.Join重载列表比。net 3.5中的重载列表更宽,而您真正想要的重载是"新"重载之一:

public static string Join<T>(string separator, IEnumerable<T> values)

你仍然可以在。net 2.0中做到这一点,只是使用List<T>特定的方法而不是LINQ(我假设你仍然可以使用c# 3):

string joined = string.Join(",", list.ConvertAll(x => x.Id.ToString())
                                     .ToArray());
string.Join( ",", list.Select( item => item.ID ).ToArray() );

use

string myResult = string.Join (",", (from l in myList select l.ID.ToString()).ToArray());

给定这个列表:

List<User> users = (GetUsers() ?? new List<User>())
   .Where(u => u != null).ToList();
// no more nulls

。. NET 3.5 - String。加入

加入(字符串,字符串())

Join(String, String(), Int32, Int32)

例子:

return string.Join(",", users.Select(u => u.Id.ToString()).ToArray());

。. NET 4.0 -字符串。加入

Join(String, IEnumerable(Of String))

Join(Of T)(String, IEnumerable(Of T))

Join(String, Object())//真的?只是加入"东西"?

加入(字符串,字符串())

Join(String, String(), Int32, Int32)

return string.Join(",", users.Select(u => u.Id));