Comment convertir une liste en une liste séparée par des virgules, en utilisant la propriété Id de la classe comme valeur

J’ai une collection List et je souhaite créer une chaîne séparée par des virgules à l’aide de la propriété User.Id. Ainsi:

 "12321,432434,123432452,1324234" 

Je l’ai fait en utilisant une boucle, mais espérais-je que quelqu’un pourrait me montrer le chemin linq?

Dans .NET 4:

 ssortingng joined = ssortingng.Join(",", list.Select(x => x.Id)); 

Dans .NET 3.5:

 ssortingng joined = ssortingng.Join(",", list.Select(x => x.Id.ToSsortingng()).ToArray()); 

La différence est que la liste de surcharge de .NET 4 pour ssortingng.Join est plus large que celle de .NET 3.5 , et la surcharge que vous voulez vraiment est l’une des “nouvelles”:

 public static ssortingng Join(ssortingng separator, IEnumerable values) 

Vous pouvez toujours le faire dans .NET 2.0, en utilisant simplement une méthode spécifique à la List au lieu de LINQ (je suppose que vous pouvez toujours utiliser C # 3):

 ssortingng joined = ssortingng.Join(",", list.ConvertAll(x => x.Id.ToSsortingng()) .ToArray()); 

Étant donné cette liste:

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

.NET 3.5 – Ssortingng.Join

Joindre (Ssortingng, Ssortingng ())

Joindre (Ssortingng, Ssortingng (), Int32, Int32)

Exemple:

 return ssortingng.Join(",", users.Select(u => u.Id.ToSsortingng()).ToArray()); 

.NET 4.0 – Ssortingng.Join

Join (Ssortingng, IEnumerable (Of Ssortingng))

Join (Of T) (Ssortingng, IEnumerable (Of T))

Join (Ssortingng, Object ()) // vraiment? Je viens de rejoindre “stuff”?

Joindre (Ssortingng, Ssortingng ())

Joindre (Ssortingng, Ssortingng (), Int32, Int32)

Exemple

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

utilisation

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