Linq同时收集了2个

我有两个清单:

List listA1 = GetFirstList(); List listA2 = GetSecondList(); 

class A定义

 class A { public int Id {get; set;} public DateTime ModifiedDate {get; set;} public string Type {get; set;} } 

我正在根据以下某些条件做一些事情。

 List listA1 = GetFirstList(); List listA2 = GetSecondList(); List result = new List(); for(int i = 0; i < listA1; i++) { if(listA1[i].ModifiedDate != listA2[i].ModifiedDate) { result.Add(listA1[i]); } } 

假设:两个列表都包含相同数量的项目,其中IdType的顺序相同。 这就是为什么我只是检查ModifiedDate并且由于项目数量和顺序而自动处理rest。

我使用LINQ更改它,如下所示,它工作正常。

 var match = ListA1 .Where(a => listA2.First(ct => ct.Id == a.Id).ModifiedDate != a.ModifiedDate); result.AddRange(match); 

但它会迭代ListA1ListA2但在第一种情况下,它只迭代一次。

我的问题是,我可以通过保留其他集合的索引来做LINQ吗? 换句话说,我可以使LINQ比现在更优化吗?