ですから、私はlinqとラムダ式の使用を始めたばかりです。必要なデータを取得しようとしているときに、小さな問題が発生しました。このメソッドは、Jiraからオープンまたは進行中のすべてのプロジェクトのリストを返す必要があります
これがコードです
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();
}
現在、これは「未解決」の問題のみを選択し、「進行中」の問題をスキップしているようです。
私の質問:まず、なぜ「未解決」の問題しか発生しないのですか。次に、これを行うためのより良い方法がありますか?
最初にすべてのステータスを取得する理由は、問題にはそのステータスIDのみが保存されるため、すべてのステータスを取得し、「オープン」と「進行中」に一致するIDを取得してから、それらのID番号を問題のステータスフィールドに一致させるためです。 。