2017-09-27 17 views
-2

期間をstart、期間をendと指定したユーザー入力をリストに入力したいとします。答えは、返済期間がない可能性のあるローン計算に入ります。リストには、startおよびendシーケンス(ユーザー入力によって指定)の不特定数の可能性が示されます。Tリストには複数の値を指定する必要があります

私はそうのように、同じインデックス番号の下startendシーケンスを受け入れるようにT-リストを取得しようとしています:

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

が、私はエラーを取得します。これは、T-listが複数の値を受け入れることができないか、構文の権利を得られないかどうかはわかりません。私は https://msdn.microsoft.com/en-us/library/3wcytfd1(v=vs.110).aspx の文書の中で複数のエントリの可能性を提示していますが、それは私のためには機能しません。ヘルプは、THXに感謝しました!

答えて

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 }); 
    

私は誤解してあなただけのシンプルなList<int>をしたいと、一度に複数の値を移入した場合、その後AddRangeを使用します。

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

感謝を!私はC#7に名前のついたタプルがあるのを知らなかった。私は本当に 'Item1' ...' Itemn'を嫌って... –

+0

@ZoharPeled - ya .....それ以前にタプルを使用しない主な理由:それぞれの 'ItemX'手段....彼らはそれを追加しました。このアスペクトではもう少しPythonのようになります:) –

+0

@Toshi - それはあります。これはC#7.0です。私はC#7.0より前のバージョンを持っています。 –

関連する問題