2010-10-24 37 views

Répondre

9

Si ces "sous-chaînes" sont toutes séparées par des espaces, vous pouvez simplement les diviser, prendre les éléments distincts et recréer la chaîne.

var str = "20 40 30 30 30 30"; 
var distinctstr = String.Join(" ", str.Split().Distinct()); 
+0

+1. Beaucoup plus facile que la façon dont je l'ai fait. Je tombe si loin derrière ... Je n'ai pas beaucoup fait avec Linq, même si ça fait un bout de temps, donc je n'ai même jamais entendu parler de la méthode Enumerable.Distinct(). Je vous remercie! – David

+0

Oui, ils sont séparés par des espaces. De plus, je ne connaissais pas la méthode Distinct(), merci pour l'info! – david

+0

@David Stratton: Jouez avec LINQ aussi souvent que possible. Et il ne doit pas être écrit juste des requêtes. Des choses comme ça sont tout aussi bonnes. Cela permet de travailler beaucoup plus facilement avec les collections. Je dirais, utilisez-le partout où vous le pouvez d'abord jusqu'à ce que vous soyez à l'aise avec le code en termes d'utilisation de LINQ. Alors que vous comprenez les limites de ses capacités, vous saurez ce que c'est et ce n'est pas utile. –

2

Je pense que la bonne réponse donnée à votre question est d'utiliser la fonction de remplacement:

string newString = oldString.Replace("30", ""); 

ou

string newString = orldString.Replace(" 30", ""); 

pour se débarrasser des blancs ..,

Modifier juste relu ... Mon erreur. Pardon. Je n'ai pas réalisé que vous vouliez garder un seul '30'.