2017-02-11 1 views
0

Я пытаюсь просмотреть список и скопировать его несколько раз без изменения кроме даты. Мне нужно увеличить дату на 1 с 2017/06/01 - 2017/07/01, но каждый раз, когда я пытаюсь перейти к дате, я указываю, что за каждый день, предшествующий этому месяцу, и последний добавленный элемент повторяется снова и снова, а не повторяется весь список. Ниже мой код, а также вывод, который я получаю.Как я прокручиваю сериализованный список, не изменяя содержимое, кроме увеличения числа на 1 с 2017/06/01 по 2017/07/01

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using FlightFactory; 
using System.IO; 
using System.Xml.Serialization; 

namespace Flights 
{ 
public partial class Form1 : Form 
{ 
    StreamWriter sw; 
    XmlSerializer serial; 
    List<FlightFactories> flightList; 
    const string FLIGHT_FILENAME = @"..\..\flights.xml"; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void btnCreateFlights_Click(object sender, EventArgs e) 
    { 

     flightList = new List<FlightFactories>(); 
     FlightFactories f = new FlightFactories("102", 20170601, "0616", "MIA", "SEA", 1550, "10"); 
     flightList.Add(f); 
     //lblResults.Text = P.ToString(); 

      f = new FlightFactories("103", 20170601, "1016", "MIA", "SEA", 2120, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("145", 20170601, "1316", "MIA", "SEA", 2850, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("146", 20170601, "2016", "MIA", "SEA", 1300, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("153", 20170601, "0816", "MIA", "DEN", 1800, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("156", 20170601, "1416", "MIA", "DEN", 2970, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("160", 20170601, "1916", "MIA", "DEN", 1950, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("164", 20170601, "2216", "MIA", "DEN", 850, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("167", 20170601, "1016", "MIA", "LAX", 2120, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("172", 20170601, "1216", "MIA", "LAX", 2510, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("174", 20170601, "1716", "MIA", "LAX", 2200, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("176", 20170601, "2316", "MIA", "LAX", 750, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("177", 20170601, "0816", "SEA", "DEN", 1800, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("179", 20170601, "1216", "SEA", "DEN", 2510, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("185", 20170601, "1516", "SEA", "DEN", 2750, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("186", 20170601, "2016", "SEA", "DEN", 1300, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("188", 20170601, "0616", "LAX", "DEN", 1550, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("200", 20170601, "1016", "LAX", "DEN", 2120, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("202", 20170601, "1416", "LAX", "DEN", 2970, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("204", 20170601, "1916", "LAX", "DEN", 1950, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("206", 20170601, "1316", "SEA", "MIA", 2850, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("212", 20170601, "1516", "SEA", "MIA", 2750, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("214", 20170601, "1916", "SEA", "MIA", 1950, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("216", 20170601, "2316", "SEA", "MIA", 750, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("218", 20170601, "0816", "SEA", "LAX", 1800, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("222", 20170601, "1316", "SEA", "LAX", 2850, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("226", 20170601, "1716", "SEA", "LAX", 2200, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("228", 20170601, "2216", "SEA", "LAX", 850, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("230", 20170601, "0616", "DEN", "MIA", 1550, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("232", 20170601, "1216", "DEN", "MIA", 2510, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("234", 20170601, "1916", "DEN", "MIA", 1950, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("236", 20170601, "2316", "DEN", "MIA", 750, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("238", 20170601, "1416", "LAX", "SEA", 2970, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("241", 20170601, "1716", "LAX", "SEA", 2200, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("243", 20170601, "2016", "LAX", "SEA", 1300, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("247", 20170601, "2316", "LAX", "SEA", 750, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("250", 20170601, "0616", "DEN", "LAX", 1550, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("255", 20170601, "1216", "DEN", "LAX", 2510, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("257", 20170601, "1516", "DEN", "LAX", 2750, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("259", 20170601, "2016", "DEN", "LAX", 1300, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("260", 20170601, "0816", "DEN", "SEA", 1800, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("262", 20170601, "1316", "DEN", "SEA", 2850, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("264", 20170601, "2016", "DEN", "SEA", 1300, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("268", 20170601, "2216", "DEN", "SEA", 850, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("270", 20170601, "1016", "LAX", "MIA", 2120, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("272", 20170601, "1416", "LAX", "MIA", 2970, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("274", 20170601, "1916", "LAX", "MIA", 1950, "10"); 
      flightList.Add(f); 
      f = new FlightFactories("276", 20170601, "2316", "LAX", "MIA", 750, "10"); 
      flightList.Add(f); 

     for (int i = 20170701; i > f.Date; f.Date++) 
      { 
       flightList.Add(f); 
      }   

     serial = new XmlSerializer(flightList.GetType()); 
     sw = new StreamWriter(FLIGHT_FILENAME); 
     serial.Serialize(sw, flightList); 
     sw.Close(); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 

    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     flightList = new List<FlightFactories>(); 
     StreamReader sr = new StreamReader(FLIGHT_FILENAME); 
     serial = new XmlSerializer(flightList.GetType()); 
     flightList = (List<FlightFactories>)serial.Deserialize(sr); 
     sr.Close(); 

     foreach (FlightFactories f in flightList) 
     { 
      lstFlights.Items.Add(f.ToString()); 
     } 
    } 

    private void lstFlights_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 
    } 
} 

Кстати это в C# в Visual Studio 2013.

Results

Любая помощь будет высоко оценен.

EDIT

Вот FlightFacroty код, который ссылается на рейсы NAMESPACE жаль не размещать его.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace FlightFactory 
{ 
    public class FlightFactories 
    { 
     public string FlightNumber { get; set; } 

     public string OrigAirport { get; set; } 

     public string DesAirport { get; set; } 

     public int Fare { get; set; } 

     public string Seats { get; set; } 

     public string StartDate = "06/01/2017"; //Date format is MMDDYYYY 

     public string EndDate = "07/01/2017"; 

     public string Time { get; set; } //Time is HH:mm 24 hour time 

     public FlightFactories() { } 


     public FlightFactories (string FlightNumber, int Date, string Time, string OrigAirport, string DesAirport, int Fare, string Seats) 
    { 
     this.FlightNumber = FlightNumber; 
     this.OrigAirport = OrigAirport; 
     this.DesAirport = DesAirport; 
     this.Fare = Fare; 
     this.Seats = Seats; 
     this.Date = Date; 
     this.Time = Time; 
    } 

    public override string ToString() 
    { 
     string flightDate = Date.ToString().Substring(4, 2) + "/" + Date.ToString().Substring(6, 2) + "/" + Date.ToString().Substring(0, 4); 
     string flightTime = Time.Substring(0, 2) + ":" + Time.Substring (2, 2); 
     DateTime dt1 = Convert.ToDateTime(StartDate); 
     DateTime dt2 = Convert.ToDateTime(EndDate); 
     string farePrice = Fare.ToString("c"); 
     return String.Format("{0}, {1} at {2}, {3} to {4}, Cost: {5}, Seat: {6}", FlightNumber, flightDate, flightTime, OrigAirport, DesAirport, farePrice, Seats); 

    } 
    } 
} 
+0

«каждый раз, когда я пытаюсь перейти к дате, я указываю месяц», но вы не указали ни одного месяца. Не могли бы вы пересмотреть свое описание вопроса? – KernelMode

+0

указанный месяц - 07 или месяц. Так что он прыгает с 06/01/2017 по 07/01/2017, как показано на картинке. – user2792215

+0

@ user2792215 - Вам необходимо предоставить [mcve]. Это не может быть проверено правильно, если мы не можем самостоятельно запустить ваш код. – Enigmativity

ответ

0

Вам нужно сделать что-то вроде этого:

private void btnCreateFlights_Click(object sender, EventArgs e) 
{ 
    flightList = new List<FlightFactories>() 
    { 
     new FlightFactories("102", 20170601, "0616", "MIA", "SEA", 1550, "10"), 
     new FlightFactories("103", 20170601, "1016", "MIA", "SEA", 2120, "10"), 
     new FlightFactories("145", 20170601, "1316", "MIA", "SEA", 2850, "10"), 
     new FlightFactories("146", 20170601, "2016", "MIA", "SEA", 1300, "10"), 
     new FlightFactories("153", 20170601, "0816", "MIA", "DEN", 1800, "10"), 
     new FlightFactories("156", 20170601, "1416", "MIA", "DEN", 2970, "10"), 
     new FlightFactories("160", 20170601, "1916", "MIA", "DEN", 1950, "10"), 
     new FlightFactories("164", 20170601, "2216", "MIA", "DEN", 850, "10"), 
     new FlightFactories("167", 20170601, "1016", "MIA", "LAX", 2120, "10"), 
     new FlightFactories("172", 20170601, "1216", "MIA", "LAX", 2510, "10"), 
     new FlightFactories("174", 20170601, "1716", "MIA", "LAX", 2200, "10"), 
     new FlightFactories("176", 20170601, "2316", "MIA", "LAX", 750, "10"), 
     new FlightFactories("177", 20170601, "0816", "SEA", "DEN", 1800, "10"), 
     new FlightFactories("179", 20170601, "1216", "SEA", "DEN", 2510, "10"), 
     new FlightFactories("185", 20170601, "1516", "SEA", "DEN", 2750, "10"), 
     new FlightFactories("186", 20170601, "2016", "SEA", "DEN", 1300, "10"), 
     new FlightFactories("188", 20170601, "0616", "LAX", "DEN", 1550, "10"), 
     new FlightFactories("200", 20170601, "1016", "LAX", "DEN", 2120, "10"), 
     new FlightFactories("202", 20170601, "1416", "LAX", "DEN", 2970, "10"), 
     new FlightFactories("204", 20170601, "1916", "LAX", "DEN", 1950, "10"), 
     new FlightFactories("206", 20170601, "1316", "SEA", "MIA", 2850, "10"), 
     new FlightFactories("212", 20170601, "1516", "SEA", "MIA", 2750, "10"), 
     new FlightFactories("214", 20170601, "1916", "SEA", "MIA", 1950, "10"), 
     new FlightFactories("216", 20170601, "2316", "SEA", "MIA", 750, "10"), 
     new FlightFactories("218", 20170601, "0816", "SEA", "LAX", 1800, "10"), 
     new FlightFactories("222", 20170601, "1316", "SEA", "LAX", 2850, "10"), 
     new FlightFactories("226", 20170601, "1716", "SEA", "LAX", 2200, "10"), 
     new FlightFactories("228", 20170601, "2216", "SEA", "LAX", 850, "10"), 
     new FlightFactories("230", 20170601, "0616", "DEN", "MIA", 1550, "10"), 
     new FlightFactories("232", 20170601, "1216", "DEN", "MIA", 2510, "10"), 
     new FlightFactories("234", 20170601, "1916", "DEN", "MIA", 1950, "10"), 
     new FlightFactories("236", 20170601, "2316", "DEN", "MIA", 750, "10"), 
     new FlightFactories("238", 20170601, "1416", "LAX", "SEA", 2970, "10"), 
     new FlightFactories("241", 20170601, "1716", "LAX", "SEA", 2200, "10"), 
     new FlightFactories("243", 20170601, "2016", "LAX", "SEA", 1300, "10"), 
     new FlightFactories("247", 20170601, "2316", "LAX", "SEA", 750, "10"), 
     new FlightFactories("250", 20170601, "0616", "DEN", "LAX", 1550, "10"), 
     new FlightFactories("255", 20170601, "1216", "DEN", "LAX", 2510, "10"), 
     new FlightFactories("257", 20170601, "1516", "DEN", "LAX", 2750, "10"), 
     new FlightFactories("259", 20170601, "2016", "DEN", "LAX", 1300, "10"), 
     new FlightFactories("260", 20170601, "0816", "DEN", "SEA", 1800, "10"), 
     new FlightFactories("262", 20170601, "1316", "DEN", "SEA", 2850, "10"), 
     new FlightFactories("264", 20170601, "2016", "DEN", "SEA", 1300, "10"), 
     new FlightFactories("268", 20170601, "2216", "DEN", "SEA", 850, "10"), 
     new FlightFactories("270", 20170601, "1016", "LAX", "MIA", 2120, "10"), 
     new FlightFactories("272", 20170601, "1416", "LAX", "MIA", 2970, "10"), 
     new FlightFactories("274", 20170601, "1916", "LAX", "MIA", 1950, "10"), 
     new FlightFactories("276", 20170601, "2316", "LAX", "MIA", 750, "10"), 
    }; 

    flightList = 
     flightList 
      .Select(f => new FlightFactories(/* increment date here */)) 
      .ToList(); 

    serial = new XmlSerializer(flightList.GetType()); 
    sw = new StreamWriter(FLIGHT_FILENAME); 
    serial.Serialize(sw, flightList); 
    sw.Close(); 
} 

Без полного кода это трудно сказать, как заполнить new FlightFactories(/* increment date here */), но вы должны получить идею.

Смежные вопросы