委託人在那裏查看您測試的值是否是您要查找的值。對Remove
的呼叫看起來令人擔憂,因爲它正在改變價值 - 當你瀏覽清單時,這很少是件好事。我想如果它是一個字符串,那麼它不是太糟糕,雖然它可能不是你以後的...
什麼是涉及的類型,你在找什麼?哦,你在使用C#3和/或.NET 3.5嗎?這將使它更容易(即使C#3對.NET 2.0意味着你可以使用lambda表達式而不是匿名方法)。
當你運行代碼的時候發生了什麼?如果它只是沒有找到任何東西,它可能可能只是因爲你正在測試引用相等(如果SelectedValue
返回object
)。
試試這個:
produto = products.FindAll(delegate(Mamamia cv) {
return cv.LocalPackage.Remove(1,21).Equals(cmbPackage.SelectedValue);
});
編輯:
這聽起來像你只想要一個單一的值,如果你使用.NET 3.5會比較習慣在第一次使用LINQ地點。我會用:
string selectedText = (string) cmbPackage.SelectedValue;
Mamamia item = products.FirstOrDefault
(cv => cv.LocalPackage.Remove(1,21) == selectedText);
if (item != null)
{
// Found it; otherwise item will be null
}
我使用.NET 3.5,當我運行代碼,我得到的錯誤: 無法隱式轉換類型「System.Collections.Generic.List '到'FindMSIProducts.Mamamia 我正在尋找一個Mamamia對象列表中的propertie –
2009-09-18 14:27:16
@Felipe:您的'produto'變量的類型是'List'還是僅僅是'Mamamia'本身?如果你只是想返回一個單一的項目,然後使用'Find'方法而不是'FindAll'。如果您期望返回多個項目,則將'produto'的類型更改爲'List '。 –
LukeH
2009-09-18 14:44:47
produto是一個Mamamia對象和產品是一個列表這個列表可以有重複的項目,我想返回所有這些 –
2009-09-18 17:03:44