我有大量的物体,都是相同的类型。唯一包含一个int Id属性,其余属性是布尔标志,也是一大堆。
问题:如何组合它们并使用flag[x] = true
创建新对象,其中至少有一个对象具有flag[x] = true, else flag[x] = false
。 (抱歉这个不好的描述,我的英语不太好......)
示例(伪代码):
lst[0] = {0815, **true**, false, false, false}
lst[1] = {0815, false, false, **true**, false}
lst[2] = {0815, false, false, false, **true**}
将导致
result = {0815, **true**, false, **true**, **true**}
我考虑过使用LINQ对Source进行分组,然后遍历这些组,手动创建新对象。
有更好的方法吗?
答案 0 :(得分:0)
一种解决方案可能是遍历您的集合并检查是否存在真实:
bool hasFirstPropertyTrue = false;
bool hasSecondProprertyTrue = false;
[...]
foreach(item in yourCollection)
{
hasFirstProprertyTrue |= item.FirstProperty;
hasSecondPropertyTrue |= item.SecondProperty;
[...]
}
然后hasFirstPropertyTrue,hasSecondPropertyTrue ...如果属性中至少有一个为true,则为true