【发布时间】:2013-05-16 20:18:33
【问题描述】:
注意所有列表/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 为假。
谁能帮帮我?谢谢!
编辑
这是我到目前为止所做的:
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 的每个项目是否有任何“出现”(基于ID)。如果这是真的,我会将m_IsSelected 切换为真。我只需要确保m_IsSelected 是假的,我不知道该怎么做...
【问题讨论】:
-
到目前为止你尝试过什么?您在尝试解决此问题时遇到了哪些问题?
-
再次,您的问题不清楚。这些属性是
ObjectInfo类的成员还是在其他地方?你能用步骤(1...2...3...)表达你的想法吗? -
是的,我无法想象这个问题。
-
天哪!我虽然我的问题很简单。 :|我会在我的帖子中添加信息!对不起!
-
对不起,我希望这更清楚,如果不是,请随时告诉我您需要什么。
标签: c# asp.net-mvc linq list