簡體   English   中英

如何使用類的Id屬性作為值將List <T>轉換為逗號分隔列表

[英]How to convert a List<T> into a comma-separated list, using the class's Id property as the value

我有一個List<User>集合,我想使用User.Id屬性創建一個逗號分隔的字符串,所以:

"12321,432434,123432452,1324234"

我是用循環完成的,但希望有人能告訴我linq方式?

在.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());

鑒於此列表:

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

// no more nulls

.NET 3.5 - String.Join

Join(String,String())

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

例:

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

.NET 4.0 - String.Join

Join(String,IEnumerable(Of String))

加入(Of T)(String,IEnumerable(Of T))

加入(String,Object())//真的嗎? 加入“東西”?

Join(String,String())

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

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

使用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM