【发布时间】:2022-01-18 07:17:54
【问题描述】:
在我最后一次尝试每个添加部分时,它会在 data.txt 中添加 3 倍数据
我认为我可以保存我的析构方法,但它不起作用。
数据格式由3个字符串表达式组成:日期+足球队+国家
这是我的 DataStructor 类中的一部分
takimlar.Add("1905", "GS", "TR");
internal class Node
{
internal T ulke;
internal T takim;
internal T tarih;
internal Node next = null;
internal Node pre = null;
internal Node(T tarih, T takim, T ulke)
{ this.tarih = tarih; this.takim = takim; this.ulke = ulke; }
}
internal IEnumerable<string> GetEnumerator()
{
for (Node traveler = first; traveler != null; traveler = traveler.next)
yield return $"{traveler.tarih},{traveler.takim},{traveler.ulke}";
}
internal IEnumerable<Node> GetEnumeratorNodeUlke(T ulke)
{
for (Node traveler = first; traveler != null; traveler = traveler.next)
if (traveler.ulke.Equals(ulke))
yield return traveler;
}
如何解决?
using System;
using System.Windows.Forms;
using System.IO;
using System.Linq;
using System.Collections.Generic;
namespace TAKIM_ULKE
{
internal partial class MainForm : Form
{
AdderForm adderForm = new AdderForm();
static string filePath = @"C:\Users\nevfe\source\repos\TAKIM_ULKE\TAKIM_ULKE\bin\Debug\netcoreapp3.1\data.txt";
List<string> lines = new List<string>();
List<string> output = new List<string>();
internal MainForm()
{
InitializeComponent();
lines = File.ReadAllLines(filePath).ToList();
foreach (string line in lines)
{
string[] entries = line.Split(',');
adderForm.takimlar.Add(entries[0], entries[1], entries[2]);
}
foreach (var item in adderForm.takimlar.GetEnumeratorUlke()) //Ülkeleri listele
ulkeComboBox.Items.Add(item);
}
~MainForm()
{
foreach (string item in adderForm.takimlar.GetEnumerator())
if (!lines.Contains(item))
output.Add(item);
File.WriteAllLines(filePath, output);
}
}
}
【问题讨论】:
-
Handel 在表单关闭事件上保存数据,而不是在表单被垃圾收集且未关闭时调用的析构函数