T列表应该采用多个值

时间:2017-09-27 06:27:45

标签: c# list

我想使用指定start期间和end期间的用户输入填充列表。答案是贷款计算,可能会有不偿还期。该列表应该提供未指定数量的startend序列(由用户输入指定)。

我正在尝试让T列表接受相同索引号下的startend序列,如下所示:

List<int> NonRepymnt = new List<int>();
NonRepymnt.Add(2, 4);

但是我收到了错误。我不确定这是否意味着T-list不接受多个值,或者我只是没有正确的语法。我一直在查看下面的文件 https://msdn.microsoft.com/en-us/library/3wcytfd1(v=vs.110).aspx 这似乎提供了多次录入的可能性,但它对我没有用。谢谢,谢谢!

1 个答案:

答案 0 :(得分:7)

您的列表属于int类型,因此它只能获得int个项目。在这里,您尝试添加不同的类型:具有“开始”和“结束”的复杂类型。

  1. 如果使用C#7.0,一种方法是使用命名元组:

    var list = new List<(int begin, int end)>();    
    list.Add((0, 10));
    

    如果在C#7.0之前,您可以使用“普通”元组:

    var list = new List<Tuple<int, int>>();
    list.Add(Tuple.Create<int, int>(0, 10));
    
  2. 另一种选择是创建自定义类:

    class Period
    {
        public int Begin { get; set; }
        public int End{ get; set; }
    }
    
    var list = new List<Period>();
    list.Add(new Period { Begin = 0, End = 10 });
    
  3. 如果我误解了您只想要一个简单的List<int>并一次填充多个值,那么请使用AddRange

    list.AddRange(new int[] { 1, 2, 3, 4 });