标题并不合适,但我不善于在一个标题中解释。这里是:我想将一个根据userinput而变化的双变量放入一个Sortedlist,然后遍历它,以便输出如下所示: 距离:1 距离:2 距离:3 我不能使用arraylist因为我不知道我会得到多少双重值。
答案 0 :(得分:0)
我不确定你要求的是什么,所以写了一个有用的代码"对于两种情况:首先,您要访问用户编写的最后一个值。其次,您要访问列表中的所有值。第三,你希望所有这些都在一个变量上。
public class DistanceList : List<double>
{
public override string ToString()
{
int count = 1;
string resultString = String.Empty;
foreach (var item in this)
{
resultString = String.Concat(resultString, "Distance ", count.ToString(), ": ", item.ToString(), ";");
count = +1;
}
return resultString;
}
public static implicit operator double(DistanceList list)
{
return list.Single();
}
}
这个类重写了ToString方法,并循环遍历所有值并将它们添加到字符串上,给出你在问题上声明的输出&#34;输出将是这样的:距离:1距离:2距离:3&#34;。
如果你想要最后一个值,那么double的隐式转换会返回列表的唯一值,因为一个值就像常规变量一样,如果你尝试使用double作为一个double,它将只有一个值一个例外。
请注意,您将无法直接写入此变量并希望在列表中添加该项,您仍需要使用List<T>().Add
方法。
但我真的希望这不是你所要求的,因为这种设计会给你带来很多麻烦。
您是否总是检查是否只有一个项目,以便您可以将其视为双重项,或者需要处理多个值?你可能会忘记这样做...
这个类只在一个字符串上转换它们,如果你需要它们作为双倍总结它们怎么办?您最终可能会将该字符串解析回List<double>
...