Итак, я только начал работать с linq, а также с помощью лямбда-выражений. Я столкнулся с небольшой икотой, пытаясь получить некоторые данные, которые я хочу. Этот метод должен возвращать список всех проектов, которые открыты или в процессе из JiraИспользование лямбда-выражений и linq
Вот код
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();
}
Сейчас это выбрать только вопросы, которые являются «Open», и, кажется, чтобы пропустить те, которые "В ходе выполнения".
Мой вопрос: во-первых, почему я только получаю «открытые» проблемы, а во-вторых, лучший способ сделать это?
Причина, по которой я получаю все статусы в первую очередь, заключается в том, что проблема только сохраняет этот идентификатор статусов, поэтому я получаю все статусы, получаю идентификаторы, которые соответствуют «Open» и «In Progress», а затем соответствуют этим идентификационным номерам поле статуса проблем.
Спасибо, просто понял, что на моем тоже. Я смотрел на него в течение 45 минут, а через 2 минуты после того, как я попрошу о помощи, я это выясню :) – Andy