2013-05-16 32 views
0

注意所有列表/ LINQ愛好者,我對你有一個小小的挑戰。根據另一個列表中的項目設置列表中的項目的屬性

我有兩個列表:

List<ObjectInfo> firstListObject; 
List<ObjectInfo> secondListObject; 

第一個列表是,我用它來管理數據的列表。隨着過程的繼續,我使用第二個列表添加項目。所以,不時,我會在我的列表中添加/刪除項目。

我有這些領域:

public int m_ObjectID { get;set; } 
public bool m_IsSelected { get;set; } 

而且我的意圖是,每次我「更新」我secondListObject,我需要通過所有的firstListObject滾動設置m_IsSelected值設置爲true。 ELSE該值必須是false,這意味着如果一個物品第一次出現在列表中,那麼之後將被刪除,該物品的m_IsSelected將變爲false。

任何人都可以幫我嗎?謝謝!

編輯

這是我迄今所做的:

foreach (var singleOrDefault in secondListObject 
    .Select(objectInfo => firstListObject 
     .SingleOrDefault(_item => _item.m_ObjectID == inventoryInfo.m_ObjectID)) 
    .Where(singleOrDefault => singleOrDefault != null)) 
{ 
    singleOrDefault 
     .m_IsSelected = true; 
} 

那麼,從某種意義上說,這個工程。它將我正在查找的項目設置爲true。默認情況下,所有m_IsSelected值都是錯誤的。

但是,如果我刪除該項目,m_IsSelected仍然是真實的,這就是我需要做的。

所以,在一個句子中:我需要在firstListObject中做一個循環,並檢查secondListObject的每個項目是否有「發生」(基於ID)。如果這是真的,我會將m_IsSelected切換爲真。我只是需要確保否則m_IsSelected是假的,我不知道該怎麼辦......

+0

你到目前爲止試過了什麼?你試圖解決這個問題時遇到了什麼問題? – Servy

+0

再一次,你的問題不清楚。這些屬性是ObjectInfo類的成員,還是他們在其他地方?你能用步驟(1 ... 2 ... 3 ...)表達你的想法嗎? –

+0

是的,我很難想象這個問題。 – sircodesalot

回答

0

你可以先設置好一切爲false,然後只需設置要真一:

firstListObject.ForEach(o => o.m_IsSelected = false); 
// your foreach goes here 
+0

有趣!我會深入瞭解這一點。聽起來像這可能是一個不錯的選擇。 – hsim

0

所以這很大程度上取決於你在這之前做了什麼。 如果您創建了firsListObject,但根本不修改它。然後,列表中所有對象的o.m_IsSelected將處於「false」狀態,因爲這是布爾值的默認初始值,除非您將它們設置爲不同的值。

然後,您只需要更新必須設置爲true的對象。

如果您更新了列表並修改了所選內容以及不需要刷新的內容。然後Kenneth選項很好,那麼在初始化所有值之後,您可以再次執行您的代碼。

而且你有第三個選項你想要一次更新所有的項目。你可以這樣做:

foreach (var item in secondListObject) 
{ 
    item.m_IsSelected = firstListObject.Any(x => x.m_ObjectID == item.m_ObjectID); 
} 
+0

那麼,在這一點上,考慮到第一個列表是靜態的並且不會改變,只有第二個列表的內容會根據用戶可以選擇的內容而改變。 – hsim

+0

你的secondListObject呢? firstListObject是否包含系統的所有可能項目?第二個ListObject將總是有一個firstListObject的項目的子集? – Dzyann

+0

firstListObject是我在到達此階段之前使用的列表。根據搜索參數,我填寫所需的數據,因此有時可能包含20個項目,有時575個,等等。但是,當我使用第二個列表時,只要程序沒有「重新啓動」或重新搜索,第一個列表就保持靜態。這是因爲如果你看到我的意思,第一個列表是一個「瀏覽」類別,第二個列表是「使用」類別。 – hsim

相關問題