如何将根据用户输入而更改的变量添加到排序列表C#中

本文关键字:添加 变量 排序 列表 用户 输入 | 更新日期: 2023-09-27 17:58:37

标题不太合适,但我不擅长只用一个标题来解释。如下所示:我想将一个根据用户输入而变化的双变量放入Sortedlist,然后循环通过它,使其输出如下:距离:1距离:2距离:3我不能使用数组列表,因为我不知道我会得到多少个双值。

如何将根据用户输入而更改的变量添加到排序列表C#中

我真的不确定你在要求什么,所以a写了一段代码,这对两种情况都"有用":首先,你想访问用户写的最后一个值。其次,您希望访问列表中的所有值。第三,你希望所有这些都集中在一个变量上。

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方法,循环遍历所有值,并将它们添加到一个字符串中,给出您在问题中所说的输出"输出应该是这样的:距离:1距离:2距离:3"。

如果你想要最后一个值,那么对double有一个隐式转换,它返回列表的唯一值,因为一个值的工作方式与常规变量一样,对于多个值,如果你试图用作double,它只会引发异常。

请注意,您将无法直接写入该变量,并且希望在列表中添加该项,您仍然需要使用List<T>().Add方法。

但我真的希望这不是你所要求的,因为这种设计会给你带来很多麻烦。

你会一直检查是否只有一个项目,这样你就可以把它当作替身,或者需要处理多个值吗?你可能会忘记在某个地方这样做。。。

这个类只在字符串上转换它们,如果你需要它们作为替身来求和或其他什么呢?您最终可能会将该字符串解析回List<double>。。。