2009-10-09 6 views
-1

J'ai une chaîne qui se compose de différents domaines. Donc, ce que je veux faire, c'est obtenir le texte différent et affecter chacun d'eux dans un champ.boucle Problème: affecter des données à différentes chaînes lorsque dans une boucle

ex: Bonjour Allan IBM

donc ce que je veux faire est:

mis ces trois mots dans différentes chaînes comme

string Greeting = "Hello" 
string Name = "Allan" 
string Company = "IBM" 

//all of it happening in a loop. 
string data = "Hello Allan IBM" 
string s = data[i].ToString(); 
string[] words = s.Split(','); 
foreach (string word in words) { 
    Console.WriteLine(word); 
}    

des suggestions? merci espèrent entendre bientôt

+0

ce que vous essayez d'accomplir? –

+0

salut ravi, pouvez-vous expliquer plus loin? De quoi parlez-vous? – Preets

+0

Quelle est cette ligne? chaîne de données de = [i] .ToString(); – rahul

Répondre

2

Si je comprends bien vous avez une chaîne avec place détenteurs et que vous voulez mettre chaîne différente dans ces lieux-détenteurs:

var format="{0}, {1} {2}. How are you?"; 

//string Greeting = "Hello" 
//string Name = "Allan" 
//string Company = "IBM" 

//all of it happening in a loop. 
string data = ...; //I think you have an array of strings separated by , 

foreach(va s in data){ 
{ 
    //string s = data[i];//.ToString(); - it is already a string array 
    string[] words = data[i].Split(','); 

    Console.WriteLine(format, words[0], words[1], words[2]); 
} 
1

Pour moi, il ressemble pas un problème qui peut être résolu avec une boucle. Le problème essentiel est que la boucle ne peut fonctionner que si vous faites exactement la même opération sur les articles dans la boucle. Si votre problème ne correspond pas, vous vous retrouvez avec une douzaine de lignes de code dans la boucle pour traiter les cas particuliers, ce qui aurait pu être écrit d'une manière plus court sans une boucle.

Si, leur attribuer il y a seulement deux ou trois cordes, vous devez définir (si vous avez nommé des variables ce qui devrait être le cas) à partir des indices de la chaîne de division. Une alternative serait d'utiliser des expressions régulières pour faire correspondre certains motifs pour le rendre plus robuste, si l'une des chaînes attendues est manquante.

Une autre possibilité serait de définir des attributs sur les membres ou les propriétés comme:

[MyParseAttribute(/*position*/ /*regex*/)] 
string Greeting {get;set;} 

et de réflexion d'utilisation pour les remplir. Ici, vous pouvez créer une boucle sur toutes les propriétés ayant cet attribut, car il me semble que vous êtes désireux de créer une boucle :-)

Questions connexes