[英]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.