所以我剛剛開始使用linq以及使用lambda表達式。我試圖獲得一些我想要的數據時遇到了一個小小的呃逆。這個方法應該返回打開的或從吉拉使用lambda表達式和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();
}
眼下這僅選擇「打開」的問題,而且似乎跳過那些「進行中」。
我的問題:首先,我爲什麼只獲得「開放」問題,其次是有更好的方法來做到這一點?
我首先獲取所有狀態的原因是該問題僅存儲該狀態ID,因此我獲取所有狀態,獲取匹配「打開」和「正在進行」的ID,然後將這些ID號與問題狀態字段。
謝謝,只是計算過,自己出去了。一直在尋找它45分鐘,並在我尋求幫助後2分鐘我想出來:) – Andy 2010-05-19 16:37:16