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