比较两个列表然后分配if元素是否相等

时间:2014-04-29 16:17:24

标签: c# list

大家好我想比较两个大小不一的列表,但如果一个列表包含与另一个列表相同的列表,我希望将该特定元素设置为一个不同的对象。

        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
    }

但是因为他们在大多数情况下都有不同的尺寸,所以我会超出范围。

2 个答案:

答案 0 :(得分:1)

Linq是你的朋友。使用Intersect方法,如果开始索引和结束索引很重要,您可以使用SkipTake方法确保您在特定范围内工作。

var intersections = mIOrder.mCurrentOrderItems.Intersect(temp);
foreach (var item in intersections)
{
    //Do whatever with item
}

答案 1 :(得分:-1)