所以我刚刚开始使用 linq 以及 lambda 表达式。我在尝试获取一些我想要的数据时遇到了一个小问题。此方法应返回 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,因此我获取所有状态,获取匹配“Open”和“In Progress”的 ID,然后将这些 ID 号与问题状态字段匹配.