static List<Contact> ListOfContact = new List<Contact>(); //Sorce of data:
public void SaveContactToFile() //method to save a data
{
try
{
FileName = @"contacts.txt";
// Check if file already exists. If no, create it.
if (!File.Exists(FileName))
{
File.Create(FileName);
using (TextWriter tw = new StreamWriter(FileName))
{
foreach (String s in ListOfContact.verbList)
tw.WriteLine(s);
}
}
}
catch (Exception ex)
{ Console.WriteLine(ex.Message); }
uj5u.com熱心網友回復:
您的ListOfContact是 Contact 實體的串列。串列本身沒有verbList成員。因此,您問題中的代碼甚至無法編譯。
如果要訪問每個 Contact 實體的verbList成員,請遍歷串列并訪問每個Contact 實體的verbList成員:
foreach (var contactInstance in ListOfContact)
{
... do stuff with contactInstance.verbList ...
}
uj5u.com熱心網友回復:
您的代碼中缺少很多東西。首先ListOfContact是一個串列,但您試圖從中訪問verbList,這沒有意義。
這是您可以使用的示例...
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
internal class Program
{
static void Main(string[] args)
{
List<Contact> Contacts = new List<Contact>{
new Contact("John", "000-000-0000"),
new Contact("Peter", "000-000-0001"),
new Contact("George", "000-000-0001")
};
var fileName = "contacts.txt";
//FileStream file = File.Create(fileName);
Console.WriteLine("Writting to File");
Console.WriteLine(fileName);
using(StreamWriter writer = new StreamWriter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName)))
{
foreach(var contact in Contacts)
{
Console.WriteLine(contact.Print());
writer.WriteLine(contact.Print());
}
}
Console.WriteLine("Complete...");
Console.WriteLine("Press any key to continue");
Console.ReadLine();
}
public class Contact
{
public string Name { get; set; }
public string Number { get; set; }
public Contact(string name, string number)
{
Name = name;
Number = number;
}
public string Print()
{
return $"{Name} - {Number}";
}
}
}
}
uj5u.com熱心網友回復:
歡迎來到 Stack Overflow。請嘗試在您的問題中更具描述性和詳細程度,就像其他人指出的那樣。如果您的主要問題是為什么 SaveContactToFile 方法沒有為您的物件 ListOfContact 寫入檔案。Textwriter 方法 WriteLine 寫入文本流。要將實際緩沖資料寫入底層流,您需要呼叫tw.Flush();
并在退出回圈后立即關閉流作為良好做法tw.Close();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/474354.html
標籤:C#
