繁体   English   中英

从列表中删除项目并添加到另一个项目

[英]Removing item from list and adding to another

我有一个我要重新安排的电台列表。 我需要这样做的方式如下:

从一个列表中删除值并将它们移动到另一个列表以进行重新排列。 我需要根据它们的总影响插入这些值。 为此,我想在已填充的列表中找到理想的位置。

现在,它基于坐标之间的距离。 所以我要说这是我的旧名单:

"PO" 1 1
"wSX" 100 150
"JIK" 300 300
"LPO" 200 250
"NJH" 100 350

所以计算这些值的距离给我:PO - > WSX - > JIK - > LPO - > NJH - > PO = 987 km

我的新列表看起来像这样:

"PO" 1 1
"WSX" 100 150
"JIK" 300 300
"PO" 1 1

我想将LPO添加到列表中的索引1并计算距离,然后我想从那里取出并将其移动到索引2等。从那里我想选择给出最短总距离的变化并将其保留在那里。 然后我继续前进并尝试移动其他值,直到我不再移动。

这应该给我一组可行的短距离。

我已经尝试使用while循环来删除和添加工作站,这种工作,但我不知道如何让它检查其他位置。

我还需要一些逻辑操作的帮助,以确定最短距离的变化。

///c#

//Rearrange the list

int value = 0;

while(list.Count != 0)
{
   newlist.Add(oldlist[value]);

   oldlist.RemoveAt(0);
   value++;
}

//find the smaller variation

if (i == 0)
     smallest = value;

else if(value < smallest)
     smallest = value;

我主要需要一些帮助来创建一个遵循这条路线的循环。 如果您可能需要任何其他信息,请告诉我。

你试着将它存储在SortedList中怎么样?

它应该简化您的问题,您需要做的就是将距离作为键存储,将实际对象存储为值。 SortedList应该处理其余的事情。 虽然可能需要更多的内存。

参考: https//docs.microsoft.com/en-us/dotnet/api/system.collections.sortedlist?view=netframework-4.8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM