Вычислить расстояние между двумя целочисленными списками

Я использую 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); 
            }
        }

Заранее благодарю за вашу помощь.

7
задан Reyhaneh 1 November 2011 в 11:08
поделиться