J'utilise Lucene dans une application. En tant que tel, j'ai un formulaire qui permet aux utilisateurs de créer une requête en sélectionnant ce qu'ils veulent rechercher à partir de listes déroulantes. Une fois qu'un utilisateur soumet, je construis la requête et il se résume à quelque chose comme ceci:Création d'une chaîne par programme et traitement des opérateurs booléens finaux ou principaux
var formedQuery= string.Empty;
foreach(var field in fields)
{
if (field.name != 'condition so you never know which field from fields will be 1st')
formedQuery += " AND" + field.name + ":" field.value;
}
Maintenant, le problème est que la déclaration commencera par « ET »
Maintenant, je finis habituellement avec :
formedQuery = formedQuery.Substring(4) //Trim the first 4 characters
Est-ce que les programmeurs autres préfèrent généralement faire:
var formedQuery= string.Empty;
var i = false;
foreach(var field in fields)
{
if (false &&
field.name != 'condition so you never know which field from fields will be 1st')
{
formedQuery += " AND" + field.name + ":" field.value;
i = true;
}
else
formedQuery += " " + field.name + ":" field.value;
}
Y a-t-il une autre technique que les gens aiment utiliser pour ce genre de choses auxquelles je ne pense pas? Je préfère le premier.
J'aime beaucoup votre deuxième voie! – Matt