2012-09-19 62 views
1

我有一個列表<customClass>。我可以在列表<T>中搜索特定值嗎?

自定義類包含兩個成員,它們一起構成一個僞組合鍵。

我希望能夠多次寫入自定義類的每個實例(「逐步填充」 - 多個成員在一個點分配值,然後多個成員在稍後的點分配值,等等)。

將數據保存到此列表<T>時,如果已經實例化,我希望能夠找到要部分填充的特定實例。

例如,讓我們說的「假複合鍵」是:

class.member1 == "a" 
class.member2 == "42" 

我想搜索,看看是否已經有我的這些值的定製類的實例,如果是這樣,用它;否則,創建該類的新實例以添加到列表<T>。

有找到自定義類的特定實例的方法,以便我可以將成員分配給該實例的尚未分配的成員?

我需要這樣做的原因是,在保存值時(在它們「消失」之前),有些但可能不是所有的許多(如果不是全部)自定義類實例的值都是已知的;下一次進行保存時,其他這些相同類實例的部分已知並且必須添加到現有類實例中;等

回答

1
try { 
    var obj = list.First(x => x.Property1 == "1" && x.Property2 == "a"); 
} catch { 
    // Not found 
} 
+0

使用'FirstOrDefault'如果沒有匹配的機會被人發現。 – Lee

+0

你也可以使用。我通常喜歡比FirstOrDefault更好地使用try/catch,然後將結果與默認值進行比較。 – caesay

+0

如果第一次失敗,是否爲「obj」? –

3
myList.Where(x => x.Member1 == "a" && x.Member2 == "42"); 
相關問題