gpt4 book ai didi

c# - Linq:查找具有不同值但索引相同的 2 个列表的元素

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:27 25 4
gpt4 key购买 nike

我有 2 个点列表 ( List<Point> ) 用于某些标签元素的坐标。一个列表用于移动之前,一个列表用于移动之后,因此索引引用相同的标签元素。我想比较具有相同索引的每个元素,看看哪些元素的点发生了变化。

List<int> changedIndexes = new List<int>();
for(int i = 0; i < labelLocationsBefore.Count; i++)
{
if (labelLocationsBefore[i].X != labelLocationsAfter[i].X || labelLocationsBefore[i].Y != labelLocationsAfter[i].Y)
{
changedIndexes.Add(i);
}

}

这就是这个循环所做的。但我如何将其转换为 Linq 表达式并检索更改后的标签索引?

最佳答案

您正在寻找this overloadSelect采用 Func<T, int, bool> 的方法其中第二个参数是索引:

changedIndexes = labelLocationsBefore
.Select((point,idx) => new { point, idx })
.Where(p => p.point.X != labelLocationsAfter[p.idx].X ||
p.point.Y != labelLocationsAfter[p.idx].Y)
.Select(p => p.idx)
.ToList();

关于c# - Linq:查找具有不同值但索引相同的 2 个列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25538301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com