Je viens donc de commencer à travailler avec linq et à utiliser des expressions lambda. J'ai couru dans un petit hoquet en essayant d'obtenir des données que je veux. Cette méthode doit renvoyer une liste de tous les projets qui sont ouverts ou en cours de JiraUtilisation des expressions lambda et linq
Voici le code
public static List<string> getOpenIssuesListByProject(string _projectName)
{
JiraSoapServiceService jiraSoapService = new JiraSoapServiceService();
string token = jiraSoapService.login(DEFAULT_UN, DEFAULT_PW);
string[] keys = { getProjectKey(_projectName) };
RemoteStatus[] statuses = jiraSoapService.getStatuses(token);
var desiredStatuses = statuses.Where(x => x.name == "Open" || x.name == "In Progress")
.Select(x=>x.id);
RemoteIssue[] AllIssues = jiraSoapService.getIssuesFromTextSearchWithProject(token, keys, "", 99);
IEnumerable<RemoteIssue> openIssues = AllIssues.Where(x=>
{
foreach (var v in desiredStatuses)
{
if (x.status == v)
return true;
else
return false;
}
return false;
});
return openIssues.Select(x => x.key).ToList();
}
En ce moment, cela ne sélectionnez problèmes qui sont « ouverts », et semble ignorer ceux qui sont "En cours".
Ma question: Premièrement, pourquoi est-ce que je ne reçois que les problèmes «ouverts», et deuxièmement, y a-t-il une meilleure façon de procéder? La raison pour laquelle je reçois tous les statuts en premier est que le problème ne stocke que cet identifiant de statut, donc j'obtiens tous les statuts, obtenons les identifiants qui correspondent à "Ouvrir" et "En cours", puis je fais correspondre ces numéros le champ d'état des problèmes.
, tout compris cela moi-même aussi. Je l'ai regardé pendant 45 minutes, et 2 minutes après que je demande de l'aide je le découvre :) – Andy