Я использую C #, и у меня есть два списка
, где каждый элемент в этих списках представляет трехмерную точку в пространстве по x, y и z.
class AACoordinate
{
public int ResiNumber { get; set; }
public double x { get; set; }
public double y { get; set; }
public double z { get; set; }
}
Каждый список может содержать 2000 или более точек, и моя цель - сравнить каждую точку списка1 со всеми точками списка2, и если расстояние меньше определенного числа, я веду его запись. в настоящий момент я использую foreach для сравнения каждого элемента списка list1 со всем списком list2. Это довольно медленно из-за количества очков. Есть ли у вас какие-нибудь предложения, чтобы сделать это быстро?
моя петля:
foreach (var resiSet in Program.atomList1)
{
foreach (var res in Program.atomList2)
{
var dis = EuclideanDistance(resiSet, res);
if (dis < 5)
temp1.Add(resiSet.ResiNumber);
}
}
Заранее благодарю за вашу помощь.