List
tabanlı bir csv dosyası oluşturmak için CsvHelper
kullanıyorum, ancak değerlerden birini yazmamaktan kaçınmak istiyorum. documentation uyarınca, yok saymak istediğim alanı belirtmek için CsvClassMap
kullandım. Ancak, dosyaya hala değer yazılıyor. İşte CsvHelper çalışmıyor
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
}
benim
CsvClassMap
geçerli:: İşte
benim sınıftır
public sealed class PersonClassMap : CsvClassMap<Person>
{
public PersonClassMap()
{
Map(m => m.Id).Index(0).Name("Id");
Map(m => m.FirstName).Index(1).Name("First Name");
Map(m => m.LastName).Index(2).Name("Last Name");
Map(m => m.MiddleName).Ignore();
}
}
Ve bu çıktıyı üretmek için kullanıyorum kodudur:
var persons = new List<Person>
{
new Person {Id = 1, FirstName = "Randall", MiddleName = "Michael", LastName = "Perry"},
new Person {Id = 2, FirstName = "Marigold", MiddleName = "Joanne", LastName = "Mercibar"},
new Person {Id = 3, FirstName = "Sven", MiddleName = "Ergenfein", LastName = "Olafsson"}
};
using (var csvWriter = new CsvWriter(textWriter))
{
csvWriter.WriteRecords(persons);
textWriter.Flush();
}
Benim çıktı şu şekildedir:
Id,FirstName,MiddleName,LastName 1,Randall,Michael,Perry 2,Marigold,Joanne,Mercibar 3,Sven,Ergenfein,Olafsson
MiddleName
'u yazmayı nasıl durdurabilirim? geçerli sürümünde, sınıf haritasında don't need to explicitly ignore fields (bu değişecek olsa
using (var csvWriter = new CsvWriter(textWriter))
{
csvWriter.Configuration.RegisterClassMap<PersonClassMap>();
csvWriter.WriteRecords(persons);
textWriter.Flush();
}
şunu not:
bu aşağı-seçildi neden emin. Burada yararlı bir şey öğrendim. Yanıtla ilgili bir sorun mu var? – jsuddsjr
Sanırım, sorduktan hemen sonra kendi sorusunu cevapladı mı? – Benedict
"Kendi sorunuzu sormak ve cevaplamak sadece Tamam değil, açık bir şekilde teşvik edilir": http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own -sorular / –