C# 除了从2017/06/01到2017/07/01将日期增加1外,如何在不修改内容的情况下循环序列化列表

C# 除了从2017/06/01到2017/07/01将日期增加1外,如何在不修改内容的情况下循环序列化列表,c#,loops,serialization,C#,Loops,Serialization,我正在尝试循环浏览一个列表,并将其复制几次,除了日期之外不做任何修改。我需要将日期从2017/06/01-2017/07/01增加1,但每次我尝试将日期跳转到我指定的月份,该月份前的每一天除外,并且添加的最后一项会重复一次又一次,而不是重复整个列表。下面是我的代码以及我不断得到的输出 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Syste

我正在尝试循环浏览一个列表,并将其复制几次,除了日期之外不做任何修改。我需要将日期从2017/06/01-2017/07/01增加1,但每次我尝试将日期跳转到我指定的月份,该月份前的每一天除外,并且添加的最后一项会重复一次又一次,而不是重复整个列表。下面是我的代码以及我不断得到的输出

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)
    {

    }
  }
}

您需要这样做:

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();
}
private void btnCreateFlights\u单击(对象发送者,事件参数e)
{
flightList=新列表()
{
新FlightFactorys(“102”,20170601,“0616”,“MIA”,“SEA”,1550,“10”),
新FlightFactorys(“103”,20170601,“1016”,“MIA”,“SEA”,2120,“10”),
新FlightFactorys(“145”,20170601,“1316”,“MIA”,“SEA”,2850,“10”),
new FlightFactorys(“146”,20170601,“2016”,“MIA”,“SEA”,1300,“10”),
新飞行工厂(“153”,20170601,“0816”,“MIA”,“DEN”,1800,“10”),
新飞行工厂(“156”,20170601,“1416”,“MIA”,“DEN”,2970,“10”),
new FlightFactorys(“160”,20170601,“1916”,“MIA”,“DEN”,1950,“10”),
新飞行工厂(“164”,20170601,“2216”,“MIA”,“DEN”,850,“10”),
新飞行工厂(“167”,20170601,“1016”,“MIA”,“LAX”,2120,“10”),
新飞行工厂(“172”,20170601,“1216”,“MIA”,“LAX”,2510,“10”),
新飞行工厂(“174”,20170601,“1716”,“MIA”,“LAX”,2200,“10”),
新FlightFactorys(“176”,20170601,“2316”,“MIA”,“LAX”,750,“10”),
新FlightFactorys(“177”,20170601,“0816”,“SEA”,“DEN”,1800,“10”),
新FlightFactorys(“179”,20170601,“1216”,“SEA”,“DEN”,2510,“10”),
新FlightFactorys(“185”,20170601,“1516”,“SEA”,“DEN”,2750,“10”),
新FlightFactorys(“186”,20170601,“2016”,“SEA”,“DEN”,1300,“10”),
新飞行工厂(“188”,20170601,“0616”,“LAX”,“DEN”,1550,“10”),
新飞行工厂(“200”,20170601,“1016”,“LAX”,“DEN”,2120,“10”),
新飞行工厂(“202”,20170601,“1416”,“LAX”,“DEN”,2970,“10”),
new FlightFactorys(“204”,20170601,“1916”,“LAX”,“DEN”,1950,“10”),
新FlightFactorys(“206”,20170601,“1316”,“SEA”,“MIA”,2850,“10”),
新FlightFactorys(“212”,20170601,“1516”,“SEA”,“MIA”,2750,“10”),
新FlightFactorys(“214”,20170601,“1916”,“SEA”,“MIA”,1950,“10”),
新FlightFactorys(“216”,20170601,“2316”,“SEA”,“MIA”,750,“10”),
新飞行工厂(“218”,20170601,“0816”,“SEA”,“LAX”,1800,“10”),
新FlightFactorys(“222”,20170601,“1316”,“SEA”,“LAX”,2850,“10”),
新FlightFactorys(“226”,20170601,“1716”,“SEA”,“LAX”,2200,“10”),
新FlightFactorys(“228”,20170601,“2216”,“SEA”,“LAX”,850,“10”),
新飞行工厂(“230”,20170601,“0616”,“DEN”,“MIA”,1550,“10”),
新飞行工厂(“232”,20170601,“1216”,“DEN”,“MIA”,2510,“10”),
new FlightFactorys(“234”,20170601,“1916”,“DEN”,“MIA”,1950,“10”),
新飞行工厂(“236”,20170601,“2316”,“DEN”,“MIA”,750,“10”),
新FlightFactorys(“238”,20170601,“1416”,“LAX”,“SEA”,2970,“10”),
新飞行工厂(“241”,20170601,“1716”,“LAX”,“SEA”,2200,“10”),
新FlightFactorys(“243”,20170601,“2016”,“LAX”,“SEA”,1300,“10”),
新FlightFactorys(“247”,20170601,“2316”,“LAX”,“SEA”,750,“10”),
新飞行工厂(“250”,20170601,“0616”,“DEN”,“LAX”,1550,“10”),
新飞行工厂(“255”,20170601,“1216”,“DEN”,“LAX”,2510,“10”),
新飞行工厂(“257”,20170601,“1516”,“DEN”,“LAX”,2750,“10”),
new FlightFactorys(“259”,20170601,“2016”,“DEN”,“LAX”,1300,“10”),
新FlightFactorys(“260”,20170601,“0816”,“DEN”,“SEA”,1800,“10”),
new FlightFactorys(“262”,20170601,“1316”,“DEN”,“SEA”,2850,“10”),
new FlightFactorys(“264”,20170601,“2016”,“DEN”,“SEA”,1300,“10”),
新FlightFactorys(“268”,20170601,“2216”,“DEN”,“SEA”,850,“10”),
新飞行工厂(“270”,20170601,“1016”,“LAX”,“MIA”,2120,“10”),
新飞行工厂(“272”,20170601,“1416”,“LAX”,“MIA”,2970,“10”),
new FlightFactorys(“274”,20170601,“1916”,“LAX”,“MIA”,1950,“10”),
新FlightFactorys(“276”,20170601,“2316”,“LAX”,“MIA”,750,“10”),
};
飞行名单=
飞行名单
.选择(f=>new FlightFactorys(/*此处为增量日期*/))
.ToList();
serial=新的XmlSerializer(flightList.GetType());
sw=新StreamWriter(航班号文件名);
序列化(软件、飞行列表);
sw.Close();
}

如果没有完整的代码,很难说如何填写新的FlightFactorys(/*此处为增量日期*/),但您应该了解这一点。

“每次我尝试填写时,日期都会跳到我指定的月份”,但您没有指定任何月份。您能回顾一下您的问题描述吗?所示月份为07或7月份。因此它从2017年1月6日跳到2017年1月7日,如图所示。@user2792215-您需要提供一个。除非我们能自己运行你的代码,否则无法正确测试。为什么
Date
int
而不是
DateTime
?我真的不知道这一点。这是我的第一个C#程序,我还在学习。你认为改变它会有帮助吗?
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();
}