注意所有列表/ LINQ 爱好者,我有一个小挑战。
我有两个清单:
List<ObjectInfo> firstListObject;
List<ObjectInfo> secondListObject;
第一个列表是我用来管理数据的列表。随着过程的进行,我用来添加项目的第二个列表。所以,有时,我会在我的清单上添加/删除项目。
我有这些领域:
public int m_ObjectID { get;set; }
public bool m_IsSelected { get;set; }
我的意图是,每次我“更新” mysecondListObject
时,我都需要滚动所有内容firstListObject
以将m_IsSelected
值设置为 true。ELSE值必须是false
,这意味着如果一个项目第一次出现在列表中,然后被删除,则该项目为m_IsSelected
假。
谁能帮我吗?谢谢!
编辑
这是我到目前为止所做的:
foreach (var singleOrDefault in secondListObject
.Select(objectInfo => firstListObject
.SingleOrDefault(_item => _item.m_ObjectID == inventoryInfo.m_ObjectID))
.Where(singleOrDefault => singleOrDefault != null))
{
singleOrDefault
.m_IsSelected = true;
}
嗯,在某种程度上,这行得通。它将我正在寻找的项目设置为真。默认情况下,所有m_IsSelected
值都是假的。
但如果我删除该项目,它m_IsSelected
仍然是真实的,这就是我需要做的。
所以,一句话:我需要在 中做一个循环firstListObject
并检查secondListObject
. 如果这是真的,我将切换m_IsSelected
为真。我只需要确保 elsem_IsSelected
是错误的,我不知道该怎么做......