大家好我想比较两个大小不一的列表,但如果一个列表包含与另一个列表相同的列表,我希望将该特定元素设置为一个不同的对象。
for (int i = StartItemIdx; i < EndItemIdx; i++)
{
TmpOrderItem = mIOrder.mCurrentOrderItems[i];
//more code follows within this loop
}
我有另一个名为&#39; temp&#39;与“mIOrder.mCurrentOrderItems”相同的类型&#39; mIOrder.mCurrentOrderItems&#39;我发生的事情是在“临时”中找到的每个元素。 TmpOrderItem将等于它。但不知何故需要mIOrder.mCurrentOrderItems [i]来做。
所以换句话说,我需要检查&#39; mIOrder.mCurrentOrderItems&#39;中的元素。对抗那些临时的&#39;检查它们是否相等,然后以某种方式将它附加到上面。
for (int i = StartItemIdx; i < EndItemIdx; i++)
{
TmpOrderItem = temp[i]; // is basically what I want but with the first example used
//more code follows within this loop
}
我尝试过:
for (int i = StartItemIdx; i < EndItemIdx; i++)
{
if(mIOrder.mCurrentOrderItems[i] == temp[i])
TmpOrderItem = mIOrder.mCurrentOrderItems[i];
else break;
//more code follows within this loop
}
但是因为他们在大多数情况下都有不同的尺寸,所以我会超出范围。
答案 0 :(得分:1)
Linq是你的朋友。使用Intersect
方法,如果开始索引和结束索引很重要,您可以使用Skip
和Take
方法确保您在特定范围内工作。
var intersections = mIOrder.mCurrentOrderItems.Intersect(temp);
foreach (var item in intersections)
{
//Do whatever with item
}
答案 1 :(得分:-1)